Ejemplo usando Base de Datos

El objetivo de esta practica es mostrar el manejo de bases de datos desde Visual Basic, las instrucciones son las siguientes : siga los pasos que se muestran a continuacion y no pierda detalles de los mismos.
En esta parte usted creara una base de datos en Microsoft Access, la cual contendra dos tablas las cuales son Alumnos y Especialidades, ademas definira una relacion de uno a muchos entre dichas tablas.

1.- Abra Access,  seleccione una base de datos en blanco y presione el botón de aceptar.

2.- En seguida le aparecerá un cuadro de dialogo con la petición del nombre de la base de datos, primero posicionese en la unidad C: y seleccione crear una nueva carpeta:

y nombre a la carpeta Practica:

posicionese dentro de la nueva carpeta y nombre a la base de datos Escolaridad, y luego seleccione crear, como se muestra a continuación:

3.- Ahora dentro de la ventana pricncipal de Access, seleccione nuevo, en la cual seleccionara vista de diseño y presionara Aceptar.
4.- Ahora cree la estructura de la tabla Especialidades:

Los campos son los siguientes:
 
Nombre del Campo TipoDato Longitud
Esp_Id Numerico Entero largo
Esp_Nombre Texto 50
Esp_Titular Texto 50

5.- Ahora definiremos la llave primaria para este tabla, seleccione el campo Esp_ID haciendo clicl en el cuadro que se encuentra al lado izquierdo del nombre del campo, luego de hacer esto presione el icono con forma de llave que se encuentra en la barra de herramientas principal del Access.
6.- Cierre la ventana donde definio los campos de la tabla, al momento de hacer esto Access le preguntara si desea guardar los cambios, acepte los mismos y ahora Access le hara una petición del nombre de la tabla, la cual nombrara como Especialidades.

7.- Ahora cree otra tabla llamada alumnos con las siguientes características:
 
Nombre del Campo TipoDato Longitud
Alum_Numerocontrol Texto 8
Alum_Nombre Texto 50
Alum_Direccion Texto 50
Alum_Promedio Numerico Simple
Esp_ID Numerico Entero Largo
Y defina el Alum_Numerodecontrol como llave primaria


8.- Relacione las tablas creadas, hasta este momento usted tiene dos tablas creadas, ahora necesita establecer su relacion, para hacer esto haga clic en el icono de relaciones de la barra de herramientas de Access
9.- Agrege las dos tablas que ha creado, seleccionando la tabla y luego presionando el boton de agregar.

Y ahora arrastre el campo Esp_Id de la tabla Especialidades al campo Esp_Id en la tabla de Alumnos, esto con el propósito de establecer una relación de uno a muchos, en la cual seleccionara la opcion Exigir Integridad Referencial y después presionara el boton de Crear.
10.- Cierre la ventana de Relaciones y acepte el cambio.
11.- Ahora seleccione la tabla de Especialidades desde la pantalla de la base de Datos y seleccione Abrir, después de esto inserte algunos datos validos1
2.- Cierre la ventana de datos de la tabla y ahora inserte datos en la tabla alumnos.
13.- Cierre la ventana de datos y cierre Access.

  • Programación de la Tabla Especialidades:
En esta parte usted programara con la ayuda de Visual Basic la funcionalidad básica requerida para el manejo de la información contenida en una tabla.

1.-Abra Visual Basic
2.- Cree la interfaz requerida para el manejo de la tabla de Especialidades.
3.-Recuerde que para poder insertar una imagen en un botón primero debe establecer su propiedad Style= 1 - Graphical y luego con la propiedad picture la imagen.
4.- Inserte en el formulario el control llamado Data, y en sus propiedades establezca lo siguiente :

Databasename = C:\Practica\Escolaridad.mdb (Nombre Físico de la Base de Datos)
RecordSource = Especialidades (Nombre de la Tabla o Entidad)
Visible = False (Ocultar el control)

5.- Seleccione la caja de texto de Clave de la Especialidad y establezca las siguientes propiedades :

DataSource = Data1 (Establecer la fuente de los datos)
DataField = Esp_ID (Ligarlo al campo o atributo de la tabla Especialidades)
y de la misma manera cada caja de texto con su correspondiente DataField.

6.- Seleccione todas las cajas de texto y establezca la propiedad Enabled = False.
7.- Guarde su proyecto en la carpeta de trabajo (llamada Practica)
8.- Establezca el nombre de cada CommandButton de la manera siguiente (tomando de izquierda a derecha)
cmdPrimero, cmdAnterior, cmdSiguiente, cmdUltimo, cmdImprimir, cmdBuscar, cmdAñadir, cmdGuardar, cmdCancelar, cmdEditar, cmdEliminar, cmdSalir
9.- Escriba el siguiente código para los procedimientos de evento correspondientes:

Private Sub cmdPrimero_Click()
Data1.Recordset.MoveFirst
End Sub
Private Sub cmdUltimo_Click()
Data1.Recordset.MoveLast
End Sub
Private Sub cmdAnterior_Click()
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF = True Then
Data1.Recordset.MoveNext
MsgBox ("Se encuentra en el inicio de las Especialidades")
End If
End Sub
Private Sub cmdSiguiente_Click()
Data1.Recordset.MoveNext
If Data1.Recordset.EOF = True Then
Data1.Recordset.MovePrevious
MsgBox ("Se encuentra en el final de las Especialidades")
End If
End Sub
Private Sub cmdBuscar_Click()
Buscado = InputBox("Por favor, teclee el nombre de la Especialidad a buscar :")
Nombre = Buscado
Buscado = "[Esp_Nombre] like '*" & Nombre & "*'"
cmdPrimero_Click
Data1.Recordset.FindFirst (Buscado)

If Data1.Recordset.NoMatch = True Then ' Si no lo encontro
MsgBox ("La especialidad no se encuentra")
cmdPrimero_Click
End If

End Sub
Private Sub cmdSalir_Click()
Unload Me
End Sub

10.- Guarde su proyecto
11.- Ejecute su aplicación
12.- Pruebe los botones que acaba de programar (Primero, Anterior, Siguiente, Ultimo, Buscar y Salir)
13.- Establezca en tiempo de diseño las siguientes propiedades :

cmdCancelar.Enabled = False
cmdGuardar.Enabled = False

14.- Establezca el orden de la tabulación (a tiempo de diseño):
Es decir establezca la propiedad tabindex de la caja de texto que contiene el nombre igual a cero, luego la caja de texto de nombre con dos y así sucesivamente con las demás cajas.
15.- Escriba el siguiente código :

Private Sub Form_Load()
cmdPrimero.ToolTipText = "Muestra el Primer Alumno"
cmdAnterior.ToolTipText = "Muestra el Alumno Anterior"
cmdSiguiente.ToolTipText = "Muestra el Alumno siguiente"
cmdUltimo.ToolTipText = "Muestra el Ultimo Alumno"
cmdBuscar.ToolTipText = "Permite buscar algún Alumno en la Base de Datos"
cmdAñadir.ToolTipText = "Añade un nuevo alumno"
cmdGuardar.ToolTipText = "Guarda la información del nuevo alumno o los cambios"
cmdCancelar.ToolTipText = "Deshace los cambios"
cmdEditar.ToolTipText = "Permite modifcar los datos del Alumno"
cmdEliminar.ToolTipText = "Borra el registro del alumno"

End Sub
Private Sub cmdAñadir_Click()
Data1.Recordset.AddNew
Call PreparaInterfase
End Sub
Private Sub cmdGuardar_Click()
Data1.Recordset.Update
Call PreparaInterfase
End Sub
Private Sub cmdCancelar_Click()
Data1.Recordset.CancelUpdate
Call PreparaInterfase
End Sub
Private Sub cmdEditar_Click()
Data1.Recordset.Edit
Call PreparaInterfase
End Sub
Private Sub cmdEliminar_Click()
Dim intRespuesta As Integer
intRespuesta = MsgBox("Realmente desea borrar los datos de la Especialidad ?", vbYesNo + vbQuestion)
If intRespuesta = vbYes Then
Data1.Recordset.Delete
CmdPrimero_Click
End If
End Sub
Sub PreparaInterfase()
Dim Objeto As Object

For Each Objeto In Me.Controls
If TypeOf Objeto Is TextBox Then
Objeto.Enabled = Not Objeto.Enabled
End If
If TypeOf Objeto Is CommandButton Then
Objeto.Enabled = Not Objeto.Enabled
End If
Next Objeto

End Sub
 
16.- Guarde su aplicación y pruebe la funcionalidad de la forma que acaba de diseñar, haga altas de alumnos, elimine datos y modifíquelos.
17.- Analice los métodos que utiliza el objeto RECORDSET del DataControl.

  • Diseño de Vistas (DBGrid):
1.- De un clic derecho sobre la barra de controles, al hacer esto aparecerá el siguiente menú contextual

Seleccione Componentes. 

Dentro de ella busque el control llamado Microsoft DataGrid Control 5.0 el nombre puede variar es decir tal vez no lleve (OLEDB) o (SP4). Selecciónelo y haga clic en aceptar.
Después de haber hecho esto, en la ventana de controles aparecerá uno nuevo.

2.- Agrege un nuevo formulario a su proyecto, y establezca su Caption = “Vista de Especialidades”
3.- Agregue un control de tipo DBGrid (el que acaba de añadir a su tool box) , establezca su propiedad Height = 5000 y su propiedad Width=5000.
4.- Inserte un Data control y liguelo a la tabla de Especialidades de la base de datos Escolaridad.
5.- Seleccione el Grid y establezca la propiedad del DataSource = Data1
6.- Establezca a que su forma que contiene el Grid sea la forma inicial de su proyecto.
7.- Corra su programa y vea lo que sucede.
8.- Guarde su proyecto y la nueva forma añadida en su directorio de trabajo.
10.- Ahora añada un nuevo formulario y haga una vista de la tabla de alumnos, siguiendo los pasos anteriores de esta parte de la practica.
11.- Pruebe el grid que acaba de configurar
12.- Guarde su trabajo.

  •  Implementación de DB Combos:
El objetivo de esta parte es que usted aprenda a utilizar las listas y combos diseñados para Bases de datos, observara su utilidad en el manejo de llaves foráneas para mayor facilidad del usuario.

1.- Añada un nuevo control Activex a su proyecto,(haciedo un clic izquierdo en el toolboox), seleccione el control llamado Microsoft Data Bound List Controls 6.0

Al hacer esto apareceran dos nuevos controles, los cuales son un list y un combo especiales para manipulación de bases de datos.
2.- Añada un nuevo data control a su forma de catalogo de Alumnos y configúrelo a la base de datos Escolaridad y a la tabla de Especialidades.
3.- Añada un DBCombo a su forma a un lado de la caja de texto que muestra la Clave de la Especialidad (Esp_ID).
4.- Configure las siguientes propiedades a tiempo de diseño del DB combo que acaba de añadir:

•RowSource = Data2 (Representa el data de donde va a obtener la informacion)
•ListField = Esp_Nombre (Representa el campo que sera mostrado en el combo)
•DataSource = Data1 (Representa el Data donde se van a hace las modificaciones)
•DataField= Esp_ID (Representa el campo que sera afectado con algun cambio)
•BundColumn = Esp_ID (Enlaza la Esp_ID del control)

5.- Establezca la propiedad Enabled del control DbCombo a false a tiempo de diseño.
6.- Posicionese en la subrutina PreparaInterfase y ubique la siguiente linea de codigo:
If TypeOf Objeto Is TextBox Then
y cámbiela por la siguiente:
If TypeOf Objeto Is TextBox Or TypeOf Objeto Is DBCombo Then
Esto con el objetivo de habilitar y deshabilitar el combo al mismo tiempo que las cajas de texto.
7.- Guarde su aplicación
8.- Ejecute el catalogo de especialidades y observe el manejo del DBCombo, haga modificaciones.
9.- Elimine la caja de texto que representa Esp_Id y sustitúyala por el DbCombo.
10.- Guarde su aplicación y haga pruebas.


  

Enlazar VB con ACCESS

Si es a través de código esto lo que tienes que hacer:

Este es el código que vas a usar. Puedes declarar las Variables que prefieras.

Option Explicit
Private conexion As ADODB.Connection
Private WithEvents record As ADODB.Recordset

Esto va en el form:

Private Sub Form_Load()
Set conexion = New ADODB.Connection
Set record = New ADODB.Recordset
record.LockType = adLockOptimistic
record.CursorType = adOpenKeyset

Esta condicion es para evitar escribir la variable conexion varias veces:

With conexion 
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & App.Path & "\archivo.mdb; persist security info=False"
.Open
End With
End Sub

El Editor de Menús

Esta herramienta permite crear menús personalizados para la aplicación y definir sus propiedades. Para ingresar, estando en tiempo de diseño, haga clic en el menú Herramientas y luego en la orden Editor de Menús o en el botón equivalente de la barra de herramientas estándar.

Para dar al usuario acceso a través del teclado a un elemento del menú, escriba el signo & delante de una letra. En tiempo de ejecución, esta letra aparecerá subrayada (el signo & no será visible) y el usuario tendrá acceso al menú o al comando si presiona las
teclas ALT y la correspondiente a la letra subrayada. Si necesita que aparezca en el menú el signo &, deberá escribir dos signos & consecutivos.

Nota: Para poder ingresar el editor de menús no debe encontrarse en la ventana de código.

Opciones del cuadro de diálogo:

Caption: Le permite escribir el nombre del comando o del menú que desea que aparezca en la barra de menús o en un menú. Si desea crear una barra separadora en el menú, escriba un único guión (-) en el cuadro Caption.

Name: Le permite escribir un nombre de control para el elemento del menú. El nombre de control es un identificador que sólo se utiliza para tener acceso al elemento del menú en el código, no aparece en ningún menú.

Index: Le permite asignar un valor numérico que determina la posición del control en una matriz de controles. Esta posición no tiene ninguna relación con la ubicación del control en la pantalla.

Shortcut: Le permite seleccionar una tecla de método abreviado para cada comando.

HelpContextID: Le permite asignar un valor numérico único para el Id. de contexto. Este valor se utiliza para encontrar el tema de Ayuda apropiado en el archivo de Ayuda identificado mediante la propiedad HelpFile.

NegotiatePosition: Le permite seleccionar la propiedad NegotiatePosition del menú. Esta propiedad determina si el menú aparece o no en un formulario contenedor y cómo aparece.

Checked: Le permite hacer que aparezca inicialmente una marca de verificación a la izquierda de un elemento del menú. Se utiliza normalmente para indicar si una opción de alternar está activada o no.

Enabled: Le permite seleccionar si el elemento del menú debe responder a eventos. Desactive esta opción si desea que el elemento del menú no esté disponible y aparezca atenuado.

Visible: Le permite hacer que un elemento aparezca en el menú.

WindowList: Determina si el control del menú contiene una lista de formularios secundarios MDI abiertos en una aplicación MDI.

Flecha a la derecha: Pasa el menú seleccionado a un nivel inferior cada vez que hace clic en el botón. Puede crear hasta cuatro niveles de submenús.

Flecha a la izquierda: Pasa el menú seleccionado a un nivel superior cada vez que hace clic en el botón. Puede crear hasta cuatro niveles de submenús.

Flecha arriba: Cada vez que se hace clic en este botón, el elemento seleccionado del menú se mueve hacia arriba una posición dentro del mismo nivel de menú.

Flecha abajo: Cada vez que se hace clic en este botón, el elemento seleccionado del menú se mueve hacia abajo una posición dentro del mismo nivel de menú.

Lista Menús: Es un cuadro de lista que muestra en orden jerárquico todos los elementos del menú.
Los elementos de los submenús aparecen indentados para indicar su ubicación o su nivel en la jerarquía.

Siguiente: Selecciona la línea siguiente.

Insertar:  Inserta una línea en el cuadro de lista, inmediatamente encima de la línea actualmente
seleccionada.

Eliminar: Elimina Borra la línea actualmente seleccionada.

Aceptar: Cierra el Editor de menús y aplica todos los cambios efectuados en el último formulario
seleccionado. El menú está disponible en tiempo de diseño, pero si selecciona un menú
en la fase de diseño, se abre la ventana Código para el evento Clic de ese menú en lugar de ejecutarse el código del evento.

Cancelar: Cierra el Editor de menús y cancela todos los cambios.