Cómo puedo crear un cuadro de texto independiente que al digitar me busque los registros en un formulario Access?

Tengo dos formularios. En uno tengo información sobre los empleados y en otro sobre los productos.

Quiero buscar los registros de forma mucho más rápida. Se me ocurrió poner un cuadro de texto en el encabezado del formulario en el que al ingresar parte del nombre del empleado me mostrara el registro.

E igual en el formulario "Productos" pero en el txt se pondría el código del producto (formato número) y la búsqueda tiene que ser exacta.

Intente utilizar un combo al cual le puse el siguiente código y al desplegarse me muestra las opciones existentes para escoger una y se filtra muy bien, junto al combo hay un botón que borra el filtro. El problema está en el que cuando se pone el valor directamente en el combo o se elimina un digito me arroja error y me da el mensaje de depurar.

Preferiría utilizar el combo, si no me arrojará error al digitar, pero no sé cómo puedo modificar el código.

Private Sub txtBuscarPersona_Change()
Dim sFiltroMotivo As String
sFiltroMotivo = "NombrePersona = '" & Me.txtBuscarPersona & "'"
Me.Form.Filter = sFiltroMotivo
Me.Form.FilterOn = True
End if
Private Sub BotonEliminarFiltro_Click()
Me.Form.Filter = ""
Me.Form.FilterOn = False
Me.txtBuscarPersona = Null
End Sub
Respuesta
2

He creado un ejemplo de lo que necesitas. Haber si te sirve https://youtu.be/Cgw2T_22s7I 

¡Muchas Gracias! 

Funciona muy. 

Algunos nombres tienen letras tildadas ¿es posible hacer algo en el criterio de búsqueda de la consulta para que me muestre también estos nombres a la hora de filtrar?

2 respuestas más de otros expertos

Respuesta
2

Si lo que quieres es una búsqueda exacta, pon éste código y si copias y pegas, no te olvides de activar el [Procedimiento de evento] en Propiedades >> Eventos >> Después de actualizar

Sub TxtBuscarPersona_AfterUpdate() 
Dim Rst As DAO.Recordset 
Dim SFiltroMotivo As String  
Set Rst = Me.RecordsetClone 
SFiltroMotivo = Str(Me!TxtBuscarPersona) 
Rst.FindFirst "TxtBuscarPersona = " & SFiltroMotivo 
If Rst.NoMatch Then 
    MsgBox "El registro que buscas no se ha encontrado",vbcritical,”BUSCA POR OTRO VALOR”
Else 
    Me.Bookmark = Rst.Bookmark 
End If 
Rst.Close 
End Sub

Mis saludos >> Jacinto

Estaba cometiendo un error al cambiar los nombres del código. Gracias, ahora lo utilizaré para buscar en otro formulario al que le va perfecto esta forma de mostrar los resultados de la búsqueda.

Respuesta

En las propiedades del combo ay una opción que es limitar lista ponla con SI

Si pones algo que no esta en la lista saldrá un mensaje de que elemento no esta en la lista .

------

Si pudieras explicar mejor tu problema

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas