Você está na página 1de 8

DESARROLLO DEL PROYECTO DEL SISTEMA ACADEMICO

1. Agregar un Formulario MDI y disear el men sugerido en el proyecto.

2. Grabar el formulario MDI con el nombre MDIPrin


3. Agregar un modulo estndar y codifique lo siguiente:
Option Explicit
Public Cn As ADODB.Connection
Public RsAlumnos As ADODB.Recordset 'Recordset para tabla Alumnos
Public RsAsig As ADODB.Recordset
'Recordset para tabla Asignatura
Public RsMatriculas As ADODB.Recordset 'Recordset para tabla Matriculas
Public RsMatAux As ADODB.Recordset
'Recordset para tabla MatriculaAuxiliar
Public RsCarreras As ADODB.Recordset 'Recorset para tabla Carreras
Public RsAlumMat As ADODB.Recordset 'Recordset para la tabla AlumnosMatriculados
Public StrRsAlumnos As String
'Variables cadena para instrucciones select
Public StrRsAsig As String
Public StrRsMatriculas As String
Public StrRsMatAux As String
Public StrRsCarreras As String
Public StrRsAlumMat As String
Public Sub Main()
On Error Resume Next
Set Cn = New ADODB.Connection
Cn.CursorLocation = adUseClient
With Cn
' Abre una conexin mediante el proveedor de Microsoft SQL Server
.Provider = "SQLOLEDB"
.ConnectionString = "Data Source=(Local); Initial Catalog=SistemaAcademico;" & _
"User Id=sa; Password=; Integrated Security=SSPI"
.Open
End With
If Cn.State = adStateClosed Then
Beep
MsgBox "Error en la conexin"
Exit Sub
End If
MsgBox "Conexin conforme"
MDIPrin.Show
End Sub
4. Grabe dicho modulo con el nombre de ModPrin
5. Disee la siguiente interfaz visual en un formulario Estndar:

6. Propiedades de los controles


Control
Propiedad
Valor
SSTab1
Tabs
2
Caption(Tab 0) Matriculas de alumnos
Caption (Tab 1) Relacin General
Frame1
Caption
Datos Generales de Alumnos
Frame2
Caption
Detalles de Asignaturas
Frame3
Caption
Cursos Matriculados
Frame4
Caption
Alumnos matriculados
Frame5
Caption
Alumnos
Frame6
Caption
Detalles Cursos
DataCombo1
Nombre
DtCAlu; Enabled = False
DataCombo2
Nombre
DtCCar; Enabled = False
DataCombo3
Nombre
DtCAsi; Enabled = False
DataGrid1
Nombre
DtGMatriAux; Cation = Cursos
DataGrid2
Nombre
DtGAluMat;
Caption = Alumnos Matriculados
DataGrid3
Nombre
DtGMatri;
Caption = Cursos Matriculados
ComboBox1
Nombre
CmbSec;
Enabled = False
List
MA, MB, MC, TA, TB, TC, NA, NB, NC

ComboBox2
ComboBox3
Text1
Text2
Text3
Text4
Text5
DtPicker1
Command1
Command2
Command3
Command4
Command5
Command6
Command7
Command8

Nombre
List
Nombre
List
Nombre
Nombre
Nombre
Nombre
Nombre
Nombre
Nombre
Nombre
Nombre
Nombre
Nombre
Nombre
Nombre
Nombre

CmbSem;
Enabled = False
I, II, III, IV, V, VI
CmbTur;
Enabled = False
M, T, N
TxtCodAlu;
Enabled = False
TxtCA;
Enabled = False
TxtCred;
Enabled = False
TxtTotCred
Enabled = False
TxtNumM;
Enabled = False
DTPFM;
Enabled = False
CmdNuevoA
CmdCancelarA
CmdGrabarA
CmdNuevoC
CmdAgregarC
CmdCancelarC
CmdEliminarC
CmdSalir

7. En Objeto general, Procedimiento declaraciones; realice las siguientes funciones y


procedimientos:
Objeto: General
Procedimiento: Declaraciones
Option Explicit
Dim TotalCreditos As Integer
Dim VCodAsig As String, VCreditos As Integer
Dim N1 As Integer, N2 As Integer, N3 As Integer
Sub Calculos()
N1 = 0
N2 = 0
N3 = 0
RsMatAux.MoveFirst
Do While Not RsMatAux.EOF
If RsMatAux!NumeroMatricula = 1 Then
N1 = N1 + 1
Else
If RsMatAux!NumeroMatricula = 2 Then
N2 = N2 + 1
Else
If RsMatAux!NumeroMatricula = 3 Then
N3 = N3 + 1
End If
End If
End If
RsMatAux.MoveNext
Loop
Debug.Print N1
End Sub
Sub BorrarMatriculaAuxiliar()
'Borramos los registros de la tabla temporal
RsMatAux.MoveFirst 'Vamos al primer registro
Do While Not RsMatAux.EOF
RsMatAux.Delete
RsMatAux.MoveNext
Loop
RsMatAux.UpdateBatch
End Sub
Function BuscaCreditos(VCodAsig As String) As Integer
RsAsig.MoveFirst

RsAsig.Find "CodigoAsignatura = '" & VCodAsig & "'"


BuscaCreditos = RsAsig!Creditos
End Function
Sub EstadoControlesAlumnos(Estado As Boolean)
DtCAlu.Enabled = Estado
CmbSem.Enabled = Estado
CmbTur.Enabled = Estado
CmbSec.Enabled = Estado
DTPFM.Enabled = Estado
DtCCar.Enabled = Estado
cmdCancelarA.Enabled = Estado
cmdNuevoC.Enabled = Estado
cmdGrabarA.Enabled = Estado
End Sub
Sub EstadoControlesAsignaturas(Estado As Boolean)
DtCAsi.Enabled = Estado
txtNumM.Enabled = Estado
cmdAgregarC.Enabled = Estado
cmdNuevoC.Enabled = Estado
cmdCancelarC.Enabled = Estado
End Sub
Sub LimpiaCamposAlumnos()
DtCAlu.Text = ""
CmbSem.Text = ""
CmbTur.Text = ""
CmbSec.Text = ""
txtCodAlu.Text = ""
DtCCar.Text = ""
End Sub
Sub LimpiaCamposAsignaturas()
txtNumM.Text = ""
End Sub
8. Codifique los siguientes Command
Private Sub cmdAgregarC_Click()
RsMatAux.AddNew
RsMatAux!CodigoAlumno = DtCAlu.BoundText
RsMatAux!CodigoAsignatura = DtCAsi.BoundText
RsMatAux!CodigoCarrera = DtCCar.BoundText
RsMatAux!Semestre = CmbSem.Text
RsMatAux!Creditos = RsAsig!Creditos
RsMatAux!Seccion = CmbSec.Text
RsMatAux!Turno = CmbTur.Text
RsMatAux!NumeroMatricula = Val(txtNumM.Text)
RsMatAux!FechaMatricula = DTPFM.Value
RsMatAux!Obs = ""
RsMatAux.UpdateBatch
DtGMatriAux.Refresh
TotalCreditos = TotalCreditos + VCreditos
txtTotCred.Text = Str(TotalCreditos)
MsgBox "TotalCreditos" & Str(TotalCreditos)
cmdAgregarC.Enabled = False
cmdCancelarC.Enabled = False
cmdNuevoC.Enabled = True
cmdEliminarC.Enabled = True
DtCAsi.Enabled = False
txtNumM.Enabled = False

cmdGrabarA.Enabled = True
End Sub
Private Sub cmdCancelarA_Click()
Call LimpiaCamposAlumnos
Call EstadoControlesAsignaturas(False)
RsMatriculas.CancelBatch
cmdCancelarA.Enabled = False
cmdNuevoC.Enabled = False
cmdGrabarA.Enabled = False
End Sub
Private Sub cmdCancelarC_Click()
Call LimpiaCamposAsignaturas
Call EstadoControlesAsignaturas(False)
RsMatAux.CancelBatch
DtGMatriAux.Refresh
cmdNuevoC.Enabled = True
cmdEliminarC.Enabled = True
End Sub
Private Sub cmdEliminarC_Click()
Dim Rpta As String
Rpta = MsgBox("Esta seguro de borrar el registro?", vbExclamation + vbYesNoCancel, "Borrado de
registro")

If Rpta = vbYes Then


If RsMatAux.RecordCount = 0 Then
MsgBox "No existen datos para borrar"
Exit Sub
Else
If DtGMatriAux.Bookmark Then
TotalCreditos = TotalCreditos - DtGMatriAux.Columns(4)
txtTotCred.Text = Str(TotalCreditos)
RsMatAux.Delete
If RsMatAux.BOF Then
RsMatAux.MoveNext
Else
If RsMatAux.EOF Then
RsMatAux.MovePrevious
Else
RsMatAux.MoveNext
End If
End If
Else
MsgBox "Registro no marcado, marque el registro para borrar"
End If
End If
End If
End Sub
Private Sub cmdGrabarA_Click()
RsMatAux.MoveFirst
'Vamos al primer registro
Do While Not RsMatAux.EOF 'Mientras no sea final de archivo
RsMatriculas.AddNew 'Agregamos un registro en blanco
RsMatriculas!CodigoAlumno = RsMatAux!CodigoAlumno 'Transfiere registros de la
RsMatriculas!CodigoAsignatura = RsMatAux!CodigoAsignatura ' tabla temporal a la tabla principal
RsMatriculas!CodigoCarrera = RsMatAux!CodigoCarrera
RsMatriculas!Semestre = RsMatAux!Semestre
RsMatriculas!Creditos = RsMatAux!Creditos
RsMatriculas!Seccion = RsMatAux!Seccion
RsMatriculas!Turno = RsMatAux!Turno
RsMatriculas!NumeroMatricula = RsMatAux!NumeroMatricula

RsMatriculas!Obs = RsMatAux!Obs
RsMatriculas.UpdateBatch
RsMatAux.MoveNext
Loop
'Grabamos la tabla AlumnosMatriculados
RsAlumMat.AddNew
RsAlumMat!CodigoAlumno = DtCAlu.BoundText
RsAlumMat!CodigoCarrera = DtCCar.BoundText
RsAlumMat!Semestre = CmbSem.Text
RsAlumMat!TotalCreditos = TotalCreditos
RsAlumMat!Turno = CmbTur.Text
RsAlumMat!Seccion = CmbSec.Text
Call Calculos
RsAlumMat!NroCursosPrimeraVez = N1
RsAlumMat!NroCursosSegundaVez = N2
RsAlumMat!NroCursosTerceraVez = N3
RsAlumMat!FechaMatricula = DTPFM.Value
RsAlumMat!Obs = ""
RsAlumMat.UpdateBatch
Call BorrarMatriculaAuxiliar
DtGMatri.Refresh
DtGAluMat.Refresh
Call LimpiaCamposAlumnos
Call LimpiaCamposAsignaturas
Call EstadoControlesAlumnos(False)
Call EstadoControlesAsignaturas(False)
TotalCreditos = 0
End Sub
Private Sub cmdNuevoA_Click()
Call EstadoControlesAlumnos(True)
Call LimpiaCamposAlumnos
End Sub
Private Sub cmdNuevoC_Click()
Call EstadoControlesAsignaturas(True)
Call LimpiaCamposAsignaturas
cmdNuevoC.Enabled = False
cmdEliminarC.Enabled = False
End Sub
Private Sub cmdSalir_Click()
Unload Me
End Sub
Private Sub DtCAlu_Change()
txtCodAlu.Text = DtCAlu.BoundText
End Sub
Private Sub DtCAsi_Change()
txtCA.Text = DtCAsi.BoundText
VCodAsig = DtCAsi.BoundText
VCreditos = BuscaCreditos(VCodAsig)
txtCred.Text = VCreditos
End Sub
Private Sub DtGAluMat_Click()
RsMatriculas.MoveFirst
If DtGAluMat.Bookmark Then
Dim cod As String
cod = DtGAluMat.Columns(0)
RsMatriculas.Find "CodigoAlumno = '" & cod & "'"

Else
MsgBox "Marque una fila para visualizar los cursos"
End If
End Sub
Private Sub Form_Load()
Set RsAlumnos = New ADODB.Recordset
Set RsAsig = New ADODB.Recordset
Set RsCarreras = New ADODB.Recordset
Set RsMatriculas = New ADODB.Recordset
Set RsMatAux = New ADODB.Recordset
Set RsAlumMat = New ADODB.Recordset
StrRsAlumnos = "Select * From Alumnos"
StrRsAsig = "Select * From Asignaturas"
StrRsCarreras = "Select * From Carreras"
StrRsMatriculas = "Select * From Matriculas"
StrRsMatAux = "Select * From MatriculasAuxiliar"
StrRsAlumMat = "Select * From AlumnosMatriculados"
RsAlumnos.Open StrRsAlumnos, Cn, adOpenStatic, adLockBatchOptimistic
RsAsig.Open StrRsAsig, Cn, adOpenStatic, adLockBatchOptimistic
RsCarreras.Open StrRsCarreras, Cn, adOpenStatic, adLockBatchOptimistic
RsMatriculas.Open StrRsMatriculas, Cn, adOpenStatic, adLockBatchOptimistic
RsMatAux.Open StrRsMatAux, Cn, adOpenStatic, adLockBatchOptimistic
RsAlumMat.Open StrRsAlumMat, Cn, adOpenStatic, adLockBatchOptimistic
Set DtCAlu.RowSource = RsAlumnos
DtCAlu.ListField = "Apellidos"
DtCAlu.BoundColumn = "CodigoAlumno"
DtCAlu.Refresh
Set DtCAsi.RowSource = RsAsig
DtCAsi.ListField = "Descripcion"
DtCAsi.BoundColumn = "CodigoAsignatura"
Set DtCCar.RowSource = RsCarreras
DtCCar.ListField = "Descripcion"
DtCCar.BoundColumn = "CodigoCarrera"
Set DtGMatriAux.DataSource = RsMatAux
DtGMatriAux.Refresh
Set DtGMatri.DataSource = RsMatriculas
DtGMatri.Refresh
Set DtGAluMat.DataSource = RsAlumMat
DtGAluMat.Refresh
TotalCreditos = 0
End Sub
9. Codifique el formulario MDI que contiene el men respectivo para abrir el formulario matricula
respectivo
Private Sub mnuProRe_Click()
frmMatriculas.Show
End Sub
10. Codifique el procedimiento Unload del Formulario MDI
Private Sub MDIForm_Unload(Cancel As Integer)
Cn.Close
Set Cn = Nothing
End Sub
11. Codifique para abrir la calculadora
Private Sub mnuMisCal_Click()
Dim Cal As Variant
Cal = Shell("C:\Windows\System32\Calc.exe", vbMaximizedFocus) 'Mostramos la calculadora
End Sub

12. Codifique para abrir Word


Private Sub mnuMisWor_Click()
Dim Wor As Variant
'Mostramos Word
Wor = Shell("C:\Archivos de Programa\Microsoft Office\Office11\Winword.exe", vbMaximizedFocus)

End Sub
13. Formulario en Modo Ejecucin:

Muy Lejos, donde brilla el sol, se encuentran mis mas altas aspiraciones, probablemente nunca las
alcance, pero puedo alzar la vista creer en ellas y tratar de seguir su rumbo
La vida slo puede ser comprendida mirando para atrs; mas slo puede ser vivida mirando para
adelante."
El amor es la mejor msica en la partitura de la vida. Sin l sers un eterno desafinado en el
inmenso coro de la humanidad."
Si pudiese volver a la juventud... Cometera todos aquellos errores de nuevo... Solo que ms
temprano."

Você também pode gostar