Access - Busqueda de datos

 
Vista:

Busqueda de datos

Publicado por Saul (2 intervenciones) el 04/06/2001 15:14:26
Hola tengo un problema:
Tras realizar una busqueda en un formulario tengo que conseguir que me aparezcan todos los registros coincidentes con esa busqueda.
El problema es que yo paso a otro formulario, y no se como hacer para si hay mas de un registro coincidente, a traves de un boton de comandos (SIGUIENTE) hacer que vayan pasando todos los registros encontrados.
Si no introduzco criterios de busqueda me tendrian que aparecer todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Busqueda de datos

Publicado por Alejandro (4142 intervenciones) el 14/04/2023 23:20:52
Puedes utilizar un botón de comando en el formulario de búsqueda para abrir el formulario de resultados y mostrar el primer registro coincidente. Luego, puedes agregar un botón de "Siguiente" en el formulario de resultados para avanzar a través de los registros coincidentes.

Para mostrar el primer registro coincidente en el formulario de resultados, puedes usar el evento "Al hacer clic" del botón de comando en el formulario de búsqueda para abrir el formulario de resultados con una consulta que devuelva los registros coincidentes. Puedes usar la función DLookup para obtener el valor del primer registro coincidente y establecer la propiedad Form.RecordSource del formulario de resultados en una consulta que filtre solo los registros coincidentes.

Aquí te dejo un ejemplo de código que puedes usar en el evento "Al hacer clic" del botón de comando en el formulario de búsqueda:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub cmdBuscar_Click()
    Dim strBusqueda As String
    Dim strFiltro As String
    Dim strConsulta As String
 
    'Obtener el criterio de búsqueda del cuadro de texto
    strBusqueda = Me.txtBusqueda.Value
 
    'Crear el filtro para la consulta
    strFiltro = "[CampoBusqueda] = '" & strBusqueda & "'"
 
    'Crear la consulta que devuelve los registros coincidentes
    strConsulta = "SELECT * FROM NombreTabla WHERE " & strFiltro
 
    'Abrir el formulario de resultados con la consulta filtrada
    DoCmd.OpenForm "NombreFormulario", acNormal, , , acFormEdit, acWindowNormal, strConsulta
 
End Sub

Luego, en el formulario de resultados, puedes agregar un botón de "Siguiente" y usar el siguiente código en el evento "Al hacer clic" del botón:

1
2
3
4
5
6
7
8
9
10
Private Sub cmdSiguiente_Click()
    'Ir al siguiente registro coincidente
    DoCmd.GoToRecord , , acNext
 
    'Comprobar si se ha llegado al final de los registros coincidentes
    If Me.CurrentRecord = Me.Recordset.RecordCount Then
        'Desactivar el botón de "Siguiente" si se ha llegado al final
        Me.cmdSiguiente.Enabled = False
    End If
End Sub

Espero que esto te ayude a resolver tu problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar