En un formulario de access necesito buscar un registro al presionar una tecla, ej "enter", en lugar de usar el botón buscar

Tengo un formulario en access, el que tiene un cuadro de texto (nombre_cliente) para buscar clientes que están en un cuadro de lista (ListaClientes).

Lo que necesito es poner las primer letras del nombre del cliente en el cuadro de texto y al presionar la tecla enter aparezca las coincidencias en el cuadro de lista. Se que es muy sencillo lo que pregunto, solo que soy más que novata en el tema.

Desde ya muchas gracias! L

3 respuestas

Respuesta
2

La respuesta que le dan es muy acertada, solo recomiendo adicionar después de la instrucción Lista2. RowSource lo siguiente:

Lista2. Requery.

Si no sabe SQL puede utilizar el generador de consultas para crear una consulta que solicite como parámetro el cuadro de texto nombre_cliente y utilizar esta como origen de datos del cuadro de lista ListaClientes. En este caso debe adicionar en el evento Después de Actualizar del cuadro de texto nombre_cliente, algo como:

Me. ListaClietes. Requery.

Respuesta
1

Puede utilizar el método de búsqueda blanda. Con la función de filtrado cada vez que se ingresa una Tecla en el cuadro de texto.

Aquí está el ejemplo. http://www.msinformatica.cl/index.php/formularios-busqueda/formulario-busqueda-blanda-detail 

Respuesta
1

No tiene porque ser las primeras letras, basta con una cadena del nombre. Por ejemplo, voy a usare el país del cliente para "rellenar" el cuadro de lista

El cuadro de texto se llama Texto0 y el cuadro de lista Lista2

Si escribo una cadena del nombre del pais

Cuando pulso Enter

El código del evento Después de actualizar del cuadro de texto Texto0 es

Private Sub Texto0_AfterUpdate()
Lista2.RowSource = "Select nombrecliente,pais from clientes where pais like ""*"" & '" & Me.Texto0 & "' & ""*"""
End Sub

En caso, de que pese a todo quieras escribir las primeras letras basta con quitar el * de delante y dejarlo como

Private Sub Texto0_AfterUpdate()
Lista2.RowSource = "Select nombrecliente,pais from clientes where pais like '" & Me.Texto0 & "' & ""*"""
End Sub

Muchas gracias por tu ayuda, solo me resta preguntarte: en este ejemplo "nombrecliente" y "pais" son campos de la tabla "clientes", verdad?

Saludos

Efectivamente. Al no saber que datos querías mostrar en el cuadro de lista, puse "los míos".

Por cierto, yo no le puse origen de la fila al cuadro de lista. Si lo que quieres es que al principio, te muestre todos los clientes y cuando hayas escrito algo en el cuadro de texto te muestre sólo los que cumplen esa condición, podrías poner, en el origen de la fila del cuadro de lista la tabla tuya.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas