jueves, 15 de enero de 2009

Práctica 3


Búsquedas en una Base de Datos:

En esta ocasión se añadirá un botón Buscar y Buscar Siguiente, para poder seguir buscando a partir del último registro encontrado.
En la Práctica 2, se buscaba al pulsar la tecla Enter en la caja de texto, pero ahora se creará un procedimiento Buscar, el cual, según el parámetro recibido, buscará la primera coincidencia o seguirá buscando desde el último dato hallado.
Antes de añadir un nuevo botón, hay que modificar el código actual para usar el nuevo procedimiento Buscar.

1.- Crear un nuevo procedimiento, en el menú Herramientas (Tools), seleccionar Agregar procedimiento…., colocarle el nombre Buscar y hacerlo privado, ya que sólo se usará desde el formulario.
2.- Copiar el siguiente Código:

Private Sub Buscar()
' Procedimiento para buscar el dato indicado
Dim nReg As Long
'
' Buscar la primera coincidencia en el recordset del Data1
'
If Option1.Value Then 'en el campo Au_ID
'Convertir el contenido de TextBox en un número
nReg = Val(Text4)
'
Data1.Recordset.FindFirst "Au_ID = " & nReg
End If
If Option2.Value Then 'En el campo Author
'
Data1.Recordset.FindFirst "Author Like '" & Text4.Text & "'"
End If
End Sub

Ahora hay q modificar el evento KeyPress del control Text4, para que llame al nuevo procedimiento.
3.- Borrar el código que había anteriormente en ese evento y sustituirlo por este otro:

Private Sub Text4_KeyPress(KeyAscii As Integer)
'Se buscará sólo cuando se pulse ENTER
'
'Comprobar si la tecla pulsada es ENTER: vbKeyReturn o 13 que es lo mismo
If KeyAscii = vbKeyReturn Then
' Esta asignación evita que suene un BEEP
KeyAscii = 0
' Llamar al procedimiento Buscar:
Buscar
End If
End Sub

4.- Ejecutar el proyecto y verificar que todo funcione igual.
5.- Añadir un botón para que busque el primer registro que coincida con lo escrito, esto hará lo mismo que cuando se pulsa Enter en el Text4, pero para el usuario será más lógico que el hecho de tener que pulsar Enter. Cambiar la propiedad Nombre: cmdBuscar y el Caption: Buscar.
6.-Escribir el siguiente código:

Private Sub cmdBuscar_Click()
'Simplemente llama al procedimiento Buscar:
Buscar
End Sub

7.- Ejecutar el proyecto.
8.- Agregar un botón nuevo, Cambiar la propiedad Nombre: cmdBuscarSig y el Caption: Buscar Siguiente.
9.- Crear un nuevo procedimiento, en el menú Herramientas (Tools), seleccionar Agregar procedimiento…., colocarle el nombre BuscarSiguiente y hacerlo privado, ya que sólo se usará desde el formulario.
10.- Escribir el siguiente Código:

Private Sub BuscarSiguiente()
' Procedimiento para buscar el dato indicado
Dim nReg As Long
'
' Buscar la siguiente coincidencia, a partir del último hallado
'
If Option1.Value Then 'en el campo Au_ID
' Convertir el contenido de TextBox en un Número
nReg = Val(Text4)
'
Data1.Recordset.FindNext "Au_ID = " & nReg
End If
If Option2.Value Then 'en el campo Author
'
Data1.Recordset.FindNext "Author Like '" & Text4.Text & "'"
End If
End Sub

El Código es prácticamente el mismo que el del procedimiento Buscar, lo único que cambia es que aquí se usa FindNext en lugar de FindFirst.
Es decir, FindFirst busca el primer dato que coincida con lo buscado y FindNext el siguiente al último que se buscó.

11.- Para probar este procedimiento, en el evento cmdBuscarSig_Click, escribir el siguiente código:


Private Sub cmdBuscarSig_Click()
'Buscar el Siguiente registro
BuscarSiguiente
End Sub

12.- Ejecutar el proyecto

No hay comentarios:

Publicar un comentario