vb sistema matric ulas
DESCRIPTION
alasTRANSCRIPT
DESARROLLO DEL PROYECTO DEL SISTEMA ACADEMICO
1. Agregar un Formulario MDI y diseñar el menú sugerido en el proyecto.
2. Grabar el formulario MDI con el nombre MDIPrin3. Agregar un modulo estándar y codifique lo siguiente:
Option ExplicitPublic Cn As ADODB.ConnectionPublic RsAlumnos As ADODB.Recordset 'Recordset para tabla AlumnosPublic RsAsig As ADODB.Recordset 'Recordset para tabla AsignaturaPublic RsMatriculas As ADODB.Recordset 'Recordset para tabla MatriculasPublic RsMatAux As ADODB.Recordset 'Recordset para tabla MatriculaAuxiliarPublic RsCarreras As ADODB.Recordset 'Recorset para tabla CarrerasPublic RsAlumMat As ADODB.Recordset 'Recordset para la tabla AlumnosMatriculadosPublic StrRsAlumnos As String 'Variables cadena para instrucciones selectPublic StrRsAsig As StringPublic StrRsMatriculas As StringPublic StrRsMatAux As StringPublic StrRsCarreras As StringPublic StrRsAlumMat As StringPublic Sub Main() On Error Resume Next Set Cn = New ADODB.Connection Cn.CursorLocation = adUseClient With Cn ' Abre una conexión 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 conexión" Exit Sub End If MsgBox "Conexión conforme" MDIPrin.ShowEnd Sub
4. Grabe dicho modulo con el nombre de ModPrin5. Diseñe la siguiente interfaz visual en un formulario Estándar:
6. Propiedades de los controles Control Propiedad Valor SSTab1 Tabs 2
Caption(Tab 0) Matriculas de alumnosCaption (Tab 1) Relación General
Frame1 Caption Datos Generales de AlumnosFrame2 Caption Detalles de AsignaturasFrame3 Caption Cursos MatriculadosFrame4 Caption Alumnos matriculadosFrame5 Caption AlumnosFrame6 Caption Detalles CursosDataCombo1 Nombre DtCAlu; Enabled = FalseDataCombo2 Nombre DtCCar; Enabled = FalseDataCombo3 Nombre DtCAsi; Enabled = FalseDataGrid1 Nombre DtGMatriAux; Cation = CursosDataGrid2 Nombre DtGAluMat; Caption = Alumnos MatriculadosDataGrid3 Nombre DtGMatri; Caption = Cursos MatriculadosComboBox1 Nombre CmbSec; Enabled = False
List MA, MB, MC, TA, TB, TC, NA, NB, NC
ComboBox2 Nombre CmbSem; Enabled = FalseList I, II, III, IV, V, VI
ComboBox3 Nombre CmbTur; Enabled = FalseList M, T, N
Text1 Nombre TxtCodAlu; Enabled = FalseText2 Nombre TxtCA; Enabled = FalseText3 Nombre TxtCred; Enabled = FalseText4 Nombre TxtTotCred Enabled = FalseText5 Nombre TxtNumM; Enabled = FalseDtPicker1 Nombre DTPFM; Enabled = FalseCommand1 Nombre CmdNuevoACommand2 Nombre CmdCancelarACommand3 Nombre CmdGrabarACommand4 Nombre CmdNuevoCCommand5 Nombre CmdAgregarCCommand6 Nombre CmdCancelarCCommand7 Nombre CmdEliminarCCommand8 Nombre CmdSalir
7. En Objeto general, Procedimiento declaraciones; realice las siguientes funciones y procedimientos:
Objeto: General Procedimiento: DeclaracionesOption ExplicitDim TotalCreditos As IntegerDim VCodAsig As String, VCreditos As IntegerDim 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 N1End 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.UpdateBatchEnd Sub
Function BuscaCreditos(VCodAsig As String) As Integer RsAsig.MoveFirst
RsAsig.Find "CodigoAsignatura = '" & VCodAsig & "'" BuscaCreditos = RsAsig!CreditosEnd 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 = EstadoEnd Sub
Sub EstadoControlesAsignaturas(Estado As Boolean) DtCAsi.Enabled = Estado txtNumM.Enabled = Estado cmdAgregarC.Enabled = Estado cmdNuevoC.Enabled = Estado cmdCancelarC.Enabled = EstadoEnd 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 = TrueEnd Sub
Private Sub cmdCancelarA_Click() Call LimpiaCamposAlumnos Call EstadoControlesAsignaturas(False) RsMatriculas.CancelBatch cmdCancelarA.Enabled = False cmdNuevoC.Enabled = False cmdGrabarA.Enabled = FalseEnd Sub
Private Sub cmdCancelarC_Click() Call LimpiaCamposAsignaturas Call EstadoControlesAsignaturas(False) RsMatAux.CancelBatch DtGMatriAux.Refresh cmdNuevoC.Enabled = True cmdEliminarC.Enabled = TrueEnd 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 IfEnd 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 = 0End Sub
Private Sub cmdNuevoA_Click() Call EstadoControlesAlumnos(True) Call LimpiaCamposAlumnosEnd Sub
Private Sub cmdNuevoC_Click() Call EstadoControlesAsignaturas(True) Call LimpiaCamposAsignaturas cmdNuevoC.Enabled = False cmdEliminarC.Enabled = FalseEnd Sub
Private Sub cmdSalir_Click() Unload MeEnd Sub
Private Sub DtCAlu_Change() txtCodAlu.Text = DtCAlu.BoundTextEnd Sub
Private Sub DtCAsi_Change()txtCA.Text = DtCAsi.BoundTextVCodAsig = DtCAsi.BoundTextVCreditos = BuscaCreditos(VCodAsig)txtCred.Text = VCreditosEnd 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 IfEnd 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 = 0End Sub
9. Codifique el formulario MDI que contiene el menú respectivo para abrir el formulario matricula respectivo
Private Sub mnuProRe_Click() frmMatriculas.ShowEnd Sub
10. Codifique el procedimiento Unload del Formulario MDI
Private Sub MDIForm_Unload(Cancel As Integer) Cn.Close Set Cn = NothingEnd Sub
11. Codifique para abrir la calculadoraPrivate Sub mnuMisCal_Click() Dim Cal As Variant Cal = Shell("C:\Windows\System32\Calc.exe", vbMaximizedFocus) 'Mostramos la calculadoraEnd 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 Ejecución:
“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 sólo puede ser comprendida mirando para atrás; mas sólo puede ser vivida mirando para adelante." “El amor es la mejor música en la partitura de la vida. Sin él serás un eterno desafinado en el inmenso coro de la humanidad."“Si pudiese volver a la juventud... Cometería todos aquellos errores de nuevo... Solo que más temprano."