PRACTICA DE BASES DE DATOS EN VISUAL BASIC. USO DEL CONTROL ADO. (ACTIVEX DATA OBJECT). I.- CREACION DE LA BASE DE DATOS.
1.- CREAR UNA CARPETA PARA GUARDAR LA BASE DE DATOS Y EL PROGRAMA EN VISUAL BASIC, PARA ESTE EJEMPLO PUEDE SER: ESCUELA
2.- ENTRAR AL PAQUETE ACCESS. CREAR UNA BASE DE DATOS LLAMADA: ESCUELA 3.- CREAR DOS TABLAS: DATOS_PERSONALES Y DATOS_ESCOLARES
ESTRUCTURA: CLAVE TEXTO 10 CLAVE TEXTO 10 NOMBRE TEXTO 40 ESPECIALIDAD TEXTO 15 DIRECCION TEXTO 25 SEMESTRE TEXTO 3 TUTOR TEXTO 30 GRUPO TEXTO 1 TELEFONO TEXTO 15 GENERACION TEXTO 10 FECHA_NAC FECHA
NOTA: CREAR LA CLAVE PRINCIPAL DE CADA TABLA EN EL CAMPO CLAVE. 4.- CAPTURA 5 REGISTROS(DE PRUEBA) RELACIONADOS EN CADA TABLA.
EJEMPLO:
12345, MARTINEZ PEREDA JUAN, CARRANZA 25, PEDRO MARTINEZ, 3-30-00, 13/06/1990 12345, INFORMATICA, IV, D, 2008-2010
5.- GUARDAR LA BASE DE DATOS Y SALIR DE ACCESS. II.- MANTENIMIENTO DATOS PERSONALES.
1.- ABRIR Y CREAR UNA NUEVA APLICACIÓN EN VISUAL BASIC.
2.- PEGAR EN EL FORMULARIO: 3 FRAME, 6 LABEL, 6 TEXTBOX, 9 COMMAND. 3.- MODIFICAR LOS ATRIBUTOS COMO SE MUESTRA:
Form1
Nombre FrmMantenPersonales
Caption Mantenimiento Datos Personales BorderStyle 3-Fixed Dialog
WindowState 2-Maximized Frame1 Nombre FraIngreso Caption Frame2 Nombre FraNavegador Caption Navegador Frame3 Nombre FraMantenimiento Caption Mantenimiento Label1 Nombre LblClave Caption Clave: Label2 Nombre LblNombre Caption Nombre: Label3 Nombre LblDireccion Caption Direccion: Label4 Nombre LblTutor Caption Tutor: Label5 Nombre LblTelefono Caption Telefono: Label6 Nombre LblFechaNac Caption Fecha Nacimiento: Text1 Nombre TxtClave Locked True Text Text2 Nombre TxtNombre Locked True Text
Text3 Nombre TxtDireccion Locked True Text Text4 Nombre TxtTutor Locked True Text Text5 Nombre TxtTelefono Locked True Text Text6 Nombre TxtFechaNac Locked True Text Command1 Nombre CmdPrimero Caption Picture first.gif Style 1-Graphical ToolTipText Primero Command2 Nombre CmdAnterior Caption Picture back.gif Style 1-Graphical ToolTipText Anterior Command3 Nombre CmdSiguiente Caption Picture next.gif Style 1-Graphical ToolTipText Siguiente Command4 Nombre CmdUltimo Caption Picture last.gif Style 1-Graphical ToolTipText Ultimo Command5 Nombre CmdNuevo Caption Picture new.gif Style 1-Graphical ToolTipText Nuevo Command6 Nombre CmdEditar Caption Picture edit.gif Style 1-Graphical ToolTipText Editar Command7 Nombre CmdGuardar Caption Picture save.gif Style 1-Graphical ToolTipText Guardar Command8 Nombre CmdEliminar Caption Picture delete.gif Style 1-Graphical ToolTipText Eliminar Command9 Nombre CmdSalir Caption &Salir Picture exit.gif Style 1-Graphical Nota: Los archivos de los iconos graficos de tipo GIF, seran proporcionados por el Profesor.
4.- Antes de ingresar código a la aplicación, debemos tener en cuenta que para poder utilizar los objetos ADO en una aplicación Visual Basic es necesario cargar la librería correspondiente. Para ello seleccione el menú Proyecto y elija la opción Referencias. En el cuadro de diálogo Referencias seleccione la opción Microsoft ActiveX Data Objects 2.1 Library, tal como se indica en la figura siguiente:
5.- Escribir el codigo siguiente:
Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Private Sub Form_Load() ModoEditar False
Set Cn = New ADODB.Connection Set Rs = New ADODB.Recordset
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=D:\lap
toshiba\FEB-JUL'09\ESCUELA\ESCUELA.MDB;" & _ "Persist Security Info=False" Rs.ActiveConnection = Cn Rs.CursorType = adOpenKeyset Rs.LockType = adLockOptimistic
Rs.Open "Select * From Datos_Personales" Set TxtClave.DataSource = Rs
TxtClave.DataField = "Clave" Set TxtNombre.DataSource = Rs
TxtNombre.DataField = "Nombre" Set TxtDireccion.DataSource = Rs TxtDireccion.DataField = "Direccion" Set TxtTutor.DataSource = Rs TxtTutor.DataField = "Tutor" Set TxtTelefono.DataSource = Rs TxtTelefono.DataField = "Telefono" Set TxtFechaNac.DataSource = Rs TxtFechaNac.DataField = "Fecha_Nac" End Sub
Private Sub CmdAnterior_Click() Rs.MovePrevious
If Rs.BOF Then Rs.MoveFirst
MsgBox "Estamos en el primer registro" End If
End Sub
Private Sub CmdEditar_Click() ModoEditar True
End Sub
Private Sub CmdEliminar_Click() Rs.Delete Rs.MoveNext If Rs.EOF Then Rs.MoveLast End If End Sub
Private Sub CmdGuardar_Click() Rs.Update
ModoEditar False End Sub
Private Sub CmdNuevo_Click() Rs.AddNew
ModoEditar True End Sub
Private Sub CmdPrimero_Click() Rs.MoveFirst
End Sub
Private Sub CmdSalir_Click() Unload Me
End Sub
Private Sub CmdSiguiente_Click() Rs.MoveNext
If Rs.EOF Then Rs.MoveLast
MsgBox "Estamos en el último registro" End If
End Sub
Private Sub CmdUltimo_Click() Rs.MoveLast
End Sub
Los siguientes procedimientos, capturarlos en un area en blanco del formulario o del codigo:
Private Sub ModoEditar(ByVal Ok As Boolean) TxtClave.Locked = Not Ok TxtNombre.Locked = Not Ok TxtDireccion.Locked = Not Ok TxtTutor.Locked = Not Ok TxtTelefono.Locked = Not Ok TxtFechaNac.Locked = Not Ok CmdNuevo.Enabled = Not Ok CmdEditar.Enabled = Not Ok CmdGuardar.Enabled = Ok CmdEliminar.Enabled = Not Ok If Ok Then TxtClave.SetFocus End Sub
Private Sub Form_Unload(Cancel As Integer) If MsgBox("¿Desea terminar la aplicación?", _ vbQuestion + vbYesNo, "Pregunta") = vbYes Then End
Else
Cancel = True End If
End Sub
6.- Antes de ejecutar la aplicacion, hay que guardarla en la carpeta ESCUELA, el formulario sera nombrado: FrmMantenPersonales, y el proyecto se debe llamar: MantenDatosPersonales.
III.- CREACION DE UNA CONSULTA DE DATOS PERSONALES. 1.- CREAR UN NUEVO PROYECTO EN VISUAL BASIC.
2.- ANTES DE INSERTAR LOS CONTROLES, SELECCIONAR LA OPCION PROYECTO, COMPONENTES, Y BUSCAR EL CONTROL MICROSOFT DATAGRID CONTROL 6.0 (OLEDB), COMO SE MUESTRA
3.- INSERTAR LOS CONTROLES: 3 LABEL, 3 COMBOBOX, 1 COMMANDBUTTON Y 1 DATAGRID. Modificar sus propiedades como se indica:
Form1
Nombre FrmConsultaPersonales Caption Consulta de Datos Personales BorderStyle 3-Fixed Dialog
WindowState 2-Maximized Combo1 Nombre CboPersonal Text Combo2 Nombre CboGrupo Text Combo3 Nombre CboSemestre Text DataGrid1 Nombre DbgrdPersonal Font Arial (Negrita 10) HeadFont Arial (Negrita 10) Command1 Nombre CmdBuscar Caption &Buscar Default True Command2 Nombre CmdTerminar Caption
4.- A CONTINUACIÓN DEBE INGRESAR EL CÓDIGO QUE SE MUESTRA EN SEGUIDA: Dim Cn As ADODB.Connection
Dim RsEspecialidad As ADODB.Recordset Dim RsClave As ADODB.Recordset Dim RsGrupo As ADODB.Recordset Dim RsSemestre As ADODB.Recordset Private Sub CmdBuscar_Click()
Set RsClave = New ADODB.Recordset RsClave.ActiveConnection = Cn RsClave.CursorType = adOpenStatic RsClave.LockType = adLockReadOnly RsClave.CursorLocation = adUseClient
RsClave.Open "Select Nombre As Nombre, " & _ "Tutor As Tutor " & _
"On DATOS_PERSONALES.Clave=DATOS_ESCOLARES.Clave " & _ "Where Especialidad = '" & CboPersonal.Text & "' " & _
"And Grupo = '" & CboGrupo.Text & "'" & _ "And Semestre = '" & CboSemestre.Text & "'" Set DbgrdPersonal.DataSource = RsClave End Sub
Private Sub Form_Load()
Set Cn = New ADODB.Connection
Set RsEspecialidad = New ADODB.Recordset Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\lap toshiba\FEB-JUL'09\ESCUELA\ESCUELA.MDB;" & _ "Persist Security Info=False"
RsEspecialidad.ActiveConnection = Cn RsEspecialidad.CursorType = adOpenStatic RsEspecialidad.LockType = adLockOptimistic RsEspecialidad.CursorLocation = adUseClient
RsEspecialidad.Open "Select Distinct Especialidad From DATOS_ESCOLARES" Do While Not RsEspecialidad.EOF()
CboPersonal.AddItem RsEspecialidad("Especialidad") RsEspecialidad.MoveNext
Loop
Set RsGrupo = New ADODB.Recordset RsGrupo.ActiveConnection = Cn RsGrupo.CursorType = adOpenStatic RsGrupo.LockType = adLockOptimistic RsGrupo.CursorLocation = adUseClient
RsGrupo.Open "Select Distinct Grupo From DATOS_ESCOLARES" Do While Not RsGrupo.EOF()
CboGrupo.AddItem RsGrupo("Grupo") RsGrupo.MoveNext
Loop
Set RsSemestre = New ADODB.Recordset RsSemestre.ActiveConnection = Cn RsSemestre.CursorType = adOpenStatic RsSemestre.LockType = adLockOptimistic RsSemestre.CursorLocation = adUseClient
RsSemestre.Open "Select Distinct Semestre From DATOS_ESCOLARES" Do While Not RsSemestre.EOF()
CboSemestre.AddItem RsSemestre("Semestre") RsSemestre.MoveNext
Loop End Sub
Private Sub Form_Unload(Cancel As Integer) Cn.Close
Set Cn = Nothing End Sub
Private Sub CmdTerminar_Click() End
End Sub
5.- Antes de ejecutar la aplicacion, hay que guardarla en la carpeta ESCUELA, el formulario sera nombrado: FrmConsultaPersonales, y el proyecto se debe llamar: ConsultaDatosPersonales.
IV.- CREACION DE UN REPORTE. 1.- CREAR UN NUEVO PROYECTO.
AL FORMULARIO Form1 MODIFICAR LAS PROPIEDADES Name=FrmReporte, Caption=Reporte de Datos, WindowState=2-Maximized.
2.- INSERTAR UN ENTORNO DE DATOS, CLICKANDO LA OPCION PROYECTO Y DESPUES LA OPCION AGREGAR DATA ENVIRONMENT.
CAMBIAR EL NOMBRE DEL DataEnvironment1 EN LA VENTANA DE PROPIEDADES POR DeDatos. TAMBIEN MODIFICAR EL NOMBRE DE Connection1 POR CnDatos.
COLOCAR EL PUNTERO ENCIMA DE LA CONEXIÓN CnDatos Y CON EL BOTON DERECHO DEL RATON DESPLEGAR EL MENU CONTEXTUAL CORRESPONDIENTE Y ESCOGER LA OPCION PROPIEDADES.
MARCAR LA OPCION Microsoft Jet 4.0 OLE DB Provider, Y HACER CLICK EN EL BOTON Siguiente.
SELECCIONAR EL NOMBRE DE LA BASE DE DATOS ESCUELA Y HACER CLICK EN EL BOTON Probar Conexión.
DAR CLICK EN EL BOTON Aceptar.
3.- COLOCAR EL PUNTERO ENCIMA DE LA CONEXIÓN CnDatos Y CON EL BOTON DERECHO SELECCIONAR Agregar Comando. CAMBIAR EL NOMBRE DE Command1 POR CmDatos.
ACTIVAR EL MENU CONTEXTUAL DEL COMANDO CmDatos Y SLECCIONAR PROPIEDADES, Y EN EL ORIGEN DE DATOS ESCOGER Tabla Y EN EL NOMBRE DE OBJETO ESCOGER DATOS_PERSONALES.
DAR CLICK EN ACEPTAR. TENEMOS EN SEGUIDA LA VENTANA:
DEL MENU Proyecto ESCOGER Agregar DataReport.
DEL DATAENVIRONMENT DeDatos, SELECCIONAR Y ARRASTRAR A LA SECCION DETALLE LOS CAMPOS: Clave, Nombre, Direccion Y Tutor. HACER CLICK EN LA SECCION DETALLE EN UNA AREA DONDE NO HAYA NINGUNO DE LOS CAMPOS ARRASTRADOS Y HACER CLICK EN LA PARTE IZQUIERDA DE CADA CAMPO (ETIQUETAS) Y ARRASTRARLOS A LA SECCION ENCABEZADO DE PAGINA, ACOMODAR TANTO LA ETIQUETA COMO EL CAMPO EN COLUMNAS. INSERTAR UN CONTROL RptLabel A LA SECCION DEL ENCABEZADO DE INFORME Y ESCRIBIR EN EL CAPTION LISTADO DE ALUMNOS.
CAMBIAR EL NOMBRE DEL DATAREPORT1 POR DtaListado Y EN EL CAPTION ESCRIBIR LISTADO DE ALUMNOS.
DE LAS PROPIEDADES DE DtaListado, MODIFICAR LAS PROPIEDADES DataSource=DeDatos Y DESPUES DataMember=CmDatos.
4.- REGRESAR AL FORMULARIO FrmReporte Y AGREGAR DOS BOTONES DE COMANDO: Command1
Nombre CmdVerReporte Caption Ver Reporte Command2
Nombre CmdSalir Caption Salir
ESCRIBIR EL CODIGO SIGUIENTE: Private Sub CmdSalir_Click()
End End Sub
Private Sub CmdVerReporte_Click() DtaListado.Show
End Sub
5.- GUARDAR EL PROYECTO CON EL NOMBRE Reporte, EL FORMULARIO CON FrmReporte, EL DATAENVIRONMENT CON DeDatos Y EL DATAREPORT CON DtaListado.
V.- CREACION DE UN SISTEMA ESCOLAR.
ESTE PROYECTO INTEGRA LAS TRES APLICACIONES ANTERIORES, CON UNOS PEQUEÑOS CAMBIOS, ASIMISMO SE CREA UN FORMULARIO PARA DAR UNA CONTRASEÑA Y UNA PANTALLA PRINCIPAL QUE INTEGRA UN MENU.
1.- FORMULARIO PARA LA CONTRASEÑA.
Form1
Nombre FrmPassword
Caption Password del Sistema WindowState 2-Maximized Image1 Nombre Image1 Picture Arch.jpg Label1 Nombre LblLeer
Caption Introduce el Password Command1 Nombre CmdAceptar Caption Aceptar Command2 Nombre CmdSalir Caption Salir TextBox1 Nombre TxtPassword Pasword Char * Text CODIGO:
Dim cuenta As Integer
Private Sub CmdAceptar_Click() If TxtPassword = "escolares" Then FrmPassword.Hide
FrmPrincipal.Show Else
MsgBox ("INCORRECTA, Te quedan " & 2 - cuenta & " intentos")
cuenta = cuenta + 1 TxtPassword.Text = "" TxtPassword.SetFocus End If
If cuenta = 3 Then End End Sub
Private Sub CmdSalir_Click() Unload Me
End Sub
Private Sub Form_Load() cuenta = 0
End Sub
2.- FORMULARIO PRINCIPAL.
Form1
Nombre FrmPrincipal
Caption Sistema de Datos de Alumnos WindowState 2-Maximized
Menu
Caption
Name
Mantenimiento
MnuMantenimiento
Datos Personales
MnuDatosPersonales
Datos Escolares
MnuDatosEscolares
Consultas
MnuConsultas
Impresion
MnuImpresion
Listas
MnuListas
Salir
MnuSalir
Private Sub Form_Load()
MsgBox ("BIENVENIDO AL SISTEMA") End Sub
Private Sub MnuConsultas_Click() FrmPrincipal.Hide
FrmConsultaPersonales.Show End Sub
Private Sub MnuDatosPersonales_Click()
FrmPrincipal.Hide
FrmMantenPersonales.Show End Sub
Private Sub MnuListas_Click() FrmPrincipal.Hide
FrmReporte.Show End Sub
Private Sub MnuSalir_Click() End
End Sub
3.- AGREGAR LOS FORMULARIOS EXISTENTES DE LOS TRES PROYECTOS ANTERIORES: FrmMantenPersonales, FrmConsultaPersonales, FrmReporte:
MODIFICAR EL PROCEDIMIENTO SIGUIENTE DEL FORMULARIO FrmMantenPersonales Y PONER UN COMENTARIO A LA INSTRUCCIÓN END Y AGREGAR LAS LINEAS EN NEGRITAS:
Private Sub Form_Unload(Cancel As Integer) If MsgBox("¿Desea terminar la aplicación?", _ vbQuestion + vbYesNo, "Pregunta") = vbYes Then 'End FrmMantenPersonales.Hide FrmPrincipal.Show Else Cancel = True End If End Sub
MODIFICAR EL PROCEDIMIENTO SIGUIENTE DEL FORMULARIO FrmConsultaPersonales Y PONER UN COMENTARIO A LA INSTRUCCIÓN END Y AGREGAR LAS LINEAS EN NEGRITAS::
Private Sub CmdTerminar_Click() 'End
FrmConsultaPersonales.Hide FrmPrincipal.Show
End Sub
MODIFICAR EL PROCEDIMIENTO SIGUIENTE DEL FORMULARIO FrmReporte Y PONER UN COMENTARIO A LA INSTRUCCIÓN END Y AGREGAR LAS LINEAS EN NEGRITAS::
Private Sub CmdTerminar_Click() 'End
FrmReporte.Hide FrmPrincipal.Show End Sub
4.- PARA TERMINAR EL PROYECTO IR A LA OPCION PROYECTO Y AGREGAR ARCHIVO, ABRIR TANTO DeDatos COMO DtaListado.
5.- GUARDAR EL PROYECTO CON EL NOMBRE Sistema Escolar Y TODOS LOS DEMAS COMPONENTES RESPETAR SUS NOMBRES ORIGINALES.
6.- EJECUTAR LA APLICACIÓN.
NOTA: FALTA AGREGAR UN FORMULARIO PARA EL MANTENIMIENTO DE LOS DATOS ESCOLARES QUE ESTA EN EL MENU DEL FORMULARIO PRINCIPAL. ESTO ES SOLO UN EJEMPLO DE CÓMO SE TRABAJA EN UN PROYECTO DE BASE DE DATOS CON VISUAL BASIC.