Vous êtes sur la page 1sur 10

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 Label3
Nombre FrmMantenPersonales Nombre LblDireccion
Caption Mantenimiento Datos Personales Caption Direccion:
BorderStyle 3-Fixed Dialog Label4
WindowState 2-Maximized Nombre LblTutor
Frame1 Caption Tutor:
Nombre FraIngreso Label5
Caption Nombre LblTelefono
Frame2 Caption Telefono:
Nombre FraNavegador Label6
Caption Navegador Nombre LblFechaNac
Frame3 Caption Fecha Nacimiento:
Nombre FraMantenimiento Text1
Caption Mantenimiento Nombre TxtClave
Label1 Locked True
Nombre LblClave Text
Caption Clave: Text2
Label2 Nombre TxtNombre
Nombre LblNombre Locked True
Caption Nombre: Text
1
Text3 Nombre CmdUltimo
Nombre TxtDireccion Caption
Locked True Picture last.gif
Text Style 1-Graphical
Text4 ToolTipText Ultimo
Nombre TxtTutor Command5
Locked True Nombre CmdNuevo
Text Caption
Text5 Picture new.gif
Nombre TxtTelefono Style 1-Graphical
Locked True ToolTipText Nuevo
Text Command6
Text6 Nombre CmdEditar
Nombre TxtFechaNac Caption
Locked True Picture edit.gif
Text Style 1-Graphical
Command1 ToolTipText Editar
Nombre CmdPrimero Command7
Caption Nombre CmdGuardar
Picture first.gif Caption
Style 1-Graphical Picture save.gif
ToolTipText Primero Style 1-Graphical
Command2 ToolTipText Guardar
Nombre CmdAnterior Command8
Caption Nombre CmdEliminar
Picture back.gif Caption
Style 1-Graphical Picture delete.gif
ToolTipText Anterior Style 1-Graphical
Command3 ToolTipText Eliminar
Nombre CmdSiguiente Command9
Caption Nombre CmdSalir
Picture next.gif Caption &Salir
Style 1-Graphical Picture exit.gif
ToolTipText Siguiente Style 1-Graphical
Command4
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:
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
5.- Escribir el codigo siguiente:
TxtClave.DataField = "Clave"
Set TxtNombre.DataSource = Rs
2
TxtNombre.DataField = "Nombre" End Sub
Set TxtDireccion.DataSource = Rs
TxtDireccion.DataField = "Direccion" Private Sub CmdSalir_Click()
Set TxtTutor.DataSource = Rs Unload Me
TxtTutor.DataField = "Tutor" End Sub
Set TxtTelefono.DataSource = Rs
TxtTelefono.DataField = "Telefono" Private Sub CmdSiguiente_Click()
Set TxtFechaNac.DataSource = Rs Rs.MoveNext
TxtFechaNac.DataField = "Fecha_Nac" If Rs.EOF Then
End Sub Rs.MoveLast
MsgBox "Estamos en el último registro"
Private Sub CmdAnterior_Click() End If
Rs.MovePrevious End Sub
If Rs.BOF Then
Rs.MoveFirst Private Sub CmdUltimo_Click()
MsgBox "Estamos en el primer registro" Rs.MoveLast
End If End Sub
End Sub
Los siguientes procedimientos, capturarlos en un area
Private Sub CmdEditar_Click() en blanco del formulario o del codigo:
ModoEditar True
End Sub Private Sub ModoEditar(ByVal Ok As Boolean)
TxtClave.Locked = Not Ok
Private Sub CmdEliminar_Click() TxtNombre.Locked = Not Ok
Rs.Delete TxtDireccion.Locked = Not Ok
Rs.MoveNext TxtTutor.Locked = Not Ok
If Rs.EOF Then TxtTelefono.Locked = Not Ok
Rs.MoveLast TxtFechaNac.Locked = Not Ok
End If CmdNuevo.Enabled = Not Ok
End Sub CmdEditar.Enabled = Not Ok
CmdGuardar.Enabled = Ok
Private Sub CmdGuardar_Click() CmdEliminar.Enabled = Not Ok
Rs.Update If Ok Then TxtClave.SetFocus
ModoEditar False End Sub
End Sub
Private Sub Form_Unload(Cancel As Integer)
Private Sub CmdNuevo_Click() If MsgBox("¿Desea terminar la aplicación?", _
Rs.AddNew vbQuestion + vbYesNo, "Pregunta") = vbYes Then
ModoEditar True End
End Sub Else
Cancel = True
Private Sub CmdPrimero_Click() End If
Rs.MoveFirst 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
3.- INSERTAR LOS CONTROLES: 3 LABEL, 3 COMBOBOX, 1 COMMANDBUTTON Y 1 DATAGRID.
Modificar sus propiedades como se indica:

Form1 DataGrid1
Nombre FrmConsultaPersonales Nombre DbgrdPersonal
Caption Consulta de Datos Personales Font Arial (Negrita 10)
BorderStyle 3-Fixed Dialog HeadFont Arial (Negrita 10)
WindowState 2-Maximized Command1
Combo1 Nombre CmdBuscar
Nombre CboPersonal Caption &Buscar
Text Default True
Combo2 Command2
Nombre CboGrupo Nombre CmdTerminar
Text Caption
Combo3
Nombre CboSemestre
Text

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 " & _
"From DATOS_PERSONALES Inner Join DATOS_ESCOLARES " & _
4
"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.

5
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.
6
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.

7
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.
6.- EJECUTAR LA APLICACIÓN PARA VER EL REPORTE:

8
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. 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")
Form1 cuenta = cuenta + 1
Nombre FrmPassword TxtPassword.Text = ""
Caption Password del Sistema TxtPassword.SetFocus
WindowState 2-Maximized End If
Image1 If cuenta = 3 Then End
Nombre Image1 End Sub
Picture Arch.jpg
Label1 Private Sub CmdSalir_Click()
Unload Me
Nombre LblLeer
End Sub
Caption Introduce el Password
Command1
Private Sub Form_Load()
Nombre CmdAceptar cuenta = 0
Caption Aceptar End Sub
Command2

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
9
Listas MnuListas FrmPrincipal.Hide
FrmMantenPersonales.Show
Salir MnuSalir
End Sub
Private Sub Form_Load()
MsgBox ("BIENVENIDO AL SISTEMA")
Private Sub MnuListas_Click()
End Sub
FrmPrincipal.Hide
FrmReporte.Show
Private Sub MnuConsultas_Click()
End Sub
FrmPrincipal.Hide
FrmConsultaPersonales.Show
Private Sub MnuSalir_Click()
End Sub
End
End Sub
Private Sub MnuDatosPersonales_Click()

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.

10