Filtrador con cuadro de lista

En un formulario tengo un cuadro combinado (Combo1) donde el origen de la fila va a ser una lista de valores, un cuadro de texto (Texto1) donde se va a teclear la palabra a buscar, un botón de comando (cmdFiltro) para filtrar la búsqueda y un cuadro de lista(Lista1) donde van a estar todos los registros con origen en una consulta. ¿Qué código tengo que aplicar en cmdFiltro para que al hacer doble click me devuelva sólo los registros que coincidan con el texto introducido en Texto1?

1 Respuesta

Respuesta
1
Para hacer eso escribe las siguientes lineas de código:
Sustituye los datos necesarios y listo, esto rellena la lista filtrada por el campo Text1
Me.Lista1.RowSource = "Select Campo1 From TuTabla Where Campo1 ='" & Me.Texto1.Value & "';"
Si quieres que el filtrado permita escribir una parte solo del texto a buscar. Si escribes en el cuadro "Ca" devolverá todos los registros que contengan "Ca".
Si solo quieres que filtre con los que empiecen por "Ca" quita el primer asterisco después de like.
Me.Lista1.RowSource = "Select Campo1 From TuTabla Where Campo1  like '*" & Me.Texto1.Value & "*';"
Hola, Sir Drake. Como lo llevas.
Gracias por el aporte.
He estado practicando con el código pero no me sale. Veras:
En el combo tengo una lista de valores: idexpediente, nombrecliente, nombrecontrario, nombreabogado, numeroprocedimiento.
Elijo uno, por ej. nombreabogado
Luego tecleo en texto1 el nombre del abogado a buscar.
Y hago click en el cmdfiltro
De modo que me recupere el registro deseado con el id expediente, el nombre del cliente, el del abogado, contrario, y numero de procedimiento, en la Lista1.
En cmdfiltro he puesto:
Private Sub CmdFiltro_Click()
Me.Lista1.RowSource = "Select  buscarExpediente.IdExpediente From buscarexpediente Where idexpediente  like '*" & Me.Texto1.Value & "*';"
end sub
Donde "BuscarExpediente" es la consulta que utilizo para el cuadro de lista.
Pero no consigo el objetivo.
¿El campo IdExpediente es numero o texto?
Si es texto esta bien, pero si es numero debes quitar la comilla simple que hay delante del primer asterisco y la que hay detrás del ultimo asterisco.
Si no te funciona, haz una copia de la consulta buscarExpediente, y añade al campo idexpediente que sea igual a un numero de expediente que exista, mira que funcione. Si funciona, abre la consulta en modo SQL, y copia la instrucción SQL y la pegas en el código.
ahora busca en la linea de codigo que has insertado el valor que introdujistes de filtro, por ejemplo  "= 12345" (quita tambien el igual), y sustituyela por '*" & Me.Texto1.Value & "*'
Así te debería funcionar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas