¿Como buscar en un cuadro combinado de un formulario de manera que te busque por cualquier parte del campo?

Creo que ya hubo alguna pregunta sino igual si muy parecida por este tema, pero no la encontré. Yo lo que pretendo es que al comenzar a escribir en el campo del cuadro combinado de mi formulario me aparezcan los registros pero por ejemplo si tengo que seleccionar José Roca que me aparezca tanto por José como por roca. Si es posible no tener en cuenta los acentos ya sería lo máximo.

2 respuestas

Respuesta
1

¿Por qué poner un combinado? Puedes hacer lo mismo poniendo un cuadro de texto y así te evitas tener que poner en código que obvie los acentos que es largo y tedioso. Si tengo un formulario con un cuadro de texto al que he llamado Buscar y escribo una cadena de texto

Es cribo mor y pulso Enter

Me presenta Antonio MOReno y MORgenstern. Esté donde esé esa cadena te la busca. En el ejemplo que pones con escribir Jos es suficiente o Roc

El códigodel evento Después de actualizar del cuadro de texto Buscar es simplemente

Me.RecordSource = "select * from clientes where nombrecliente like ""*""&'" & Me.Buscar & "'& ""*"""

Respuesta

Yo hice algo parecido para facilitar la búsqueda de personas en una aplicación (tabla de socios). Pero la forma en que lo hice tiene 2 requerimientos:

1) Tenía separados en campos distintos el nombre y los apellidos

2) El ComboBox era un control independiente

A partir de esta idea hice una consulta de unión de 2 SELECT. La primera select tenía 2 campos de salida: el número de socio y una cadena con Nombre y Apellido fusionados, y en la seguna SELECT: el número de socio y una cadena con Apellido, Nombre fusionados.

Esta consulta era el orígen de la fila del ComboBox (2 columnas, siendo la primera la dependiente con un ancho de 0)

Una vez el usuario había seleccionado el socio en el combo, usaba el evento "después de actualizar" para dar el tratamiento adecuado a la entrada con VBA.

No se si es una solución óptima, pero me funcionaba bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas