Botón de búsqueda de registro en formulario

Sabe alguien como crear un cuadro de texto con un botón al lado para la búsqueda de un registro que se escriba en ese cuadro de texto en un formulario.

El registro sería "Clave", el cuadro de texto "Texto_buscar", el formulario "Productos" y la tabla se llamaría "Productos" también.

Respuesta
2

Como alternativa más sencilla a la que te propone Jacinto (que es igualmente válida), te diría que en vez de cambiar el origen de datos simplemente filtres el formulario por el valor.

En el evento "Al hacer click de tu botón", le pones:

If Nz(Me.Texto_buscar,"")="" Then

MsgBox "Has de introducir algún valor para buscar"

Exit Sub

Else

Me.Filter="Clave='" & Me.Texto_Buscar & "'"

Me.FilterOn=True

End If

Y para quitar el filtro y mostrar de nuevo todos los registros, añades otro botón con este código: Me.FilterOn=False

Si Clave fuera un campo numérico, la linea de Mi.Filter quedaría así:

Me.Filter="Clave=" & Me.Texto_Buscar 

1 respuesta más de otro experto

Respuesta
1

Jose: ¿La Clave la escribirás completa o parcial?

Ejemplo: Imaginemos que hay>>

Clave1 = hoselui1

Clave2 = hoselui2 

Clave3 = Juan28.............. Entonces teclearás:

Opción 1 >> parcial : hose

Opcion2 >> Total : hoselui2

Y luego de encontrarla: Que quieres hacer >>

1: Que te represente el resto de datos en el miso Formulario

2: Que te abra un Formulario distinto

Ya me comentarás: Jacinto

Hola Jacinto, la clave sería completa, opción 2: hoselui2 después de encontrar esa clave que se represente los datos en el formulario y en los subformularios que contiene ese formulario.

Gracias

Jose:

Supongo que el Botón es por alguna razón que desconozco y que además hará otras tareas por código, pero si quieres te lo puedes ahorrar para lo pretendes hacer.

Entonces: Si pones el Botón has de programar el Evento al Hacer Click.

Si no lo pones has programar el Evento AfterUpdate del Cuadro de Texto.

En ambos casos:

Supuestos: Nombre Formulario Principal = FrmPrincipal, este da lo mismo

Nombre del SubFormulario 1 = SubFrmA

Nombre del SubFormulario 2 = SubFrmB, y así los que tengas

El Código:

Dim FiltroClave As String

FiltroClave = " WHERE Clave = '" & Me.Texto_buscar & "'"

Me.RecordSource= "SELECT * FROM Tabla/Consulta " & FiltroClave

Me.SubFrmA.Form.RecordSource = "SELECT * FROM Tabla/Consulta " & FiltroClave

Me.SubFormB.Form.RecordSource = "SELECT * FROM Tabla/Consulta " & FiltroClave

Y así si tienes más SubFormularios

He ido escribiendo sobre la marcha: Jacinto

Me sale un error de sintaxis 3131 en FROM

El código que usado para el botón adaptado:

Private Sub Comando29_Click()

Dim FiltroClave As String

FiltroClave = " WHERE Clave = '" & Me.Texto_buscar & "'"

Me.RecordSource = "SELECT * FROM Productos  " & FiltroClave

End Sub

Jose: No veo nada raro en el Código, en todo caso quita el espacio que hay entre>>

Productos ", de modo que sería:

Me.RecordSource = "SELECT * FROM Productos" & FiltroClave

Pruébalo y si te sigue dando problemas, me lo comentas: Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas