Formulario para buscar registros por campos (no funciona)

Hice un formulario para buscar registros por campos, tengo una sola Tabla, un Formulario Principal, vinculado a esa Tabla, en el que coloqué un botón "Buscar" que abre un formulario (BuscarRegistros) que permite buscar registros en el formulario principal por los principales campos. En el formulario "BuscarRegistros" están los campos "Nombre", "Apellido", "DNI" (con etiquetas y cuadros de texto independientes) al ingresar un nombre por ej. Y presionar un botón "buscar" (que contiene el Formulario BuscarRegistros), se desata un evento al hacer clic en ese botón con macros incrustadas, primero definí variables temporales (que luego son quitadas). Con el comando "EncontrarRegistro" logro encontrar los registros buscados y abrirlos en el formulario principal, siempre permanece abierto el formulario BuscarRegistros, hasta que lo cierro con un botón instalado para tal fin. También agregué botones para ir hacia atrás o adelante en los formularios que coincidan con la búsqueda. Hasta ahí todo bien, sin embargo no logro solucionar el siguiente problema: en el caso del campo "Nombre" (también ocurre con el apellido) encuentra los formularios cuyo nombre es simple (por ej. Juan), sin embargo los nombres compuestos no los encuentra (por ej. Juan Carlos). Desearía lograr que los encuentre, ya sea en el caso mencionado o en los casos en que tengan un nombre previo, por ej. Si coloco el nombre María, que encuentre los formularios: "María", "Ana María", "María Laura", etc.

El criterio que coloco en la condición WHERE es el siguiente: ="[Mi_Tabla]![Nombre]= ' " & [Variables temporales]![BuscarRegistroPorNombre] & " ' "

Donde, BuscarRegistroPorNombre es el nombre de la Variable temporal, cuya expresión es BucarPorNombre (este es el nombre del cuadro de texto en el formulario Buscar).

Quiero aclarar que he probado colocando asteriscos entre las comillas y no funcionó. También he probado con código directamente, pero mis conocimientos son muy rudimentarios. Sin embargo también acepto sugerencias...

1 respuesta

Respuesta

Me he perdido, pero si en el formulario que sea tienes un cuadro de texto Buscar por nombre puedes poner, en su evento Después de actualizar

DoCmd.OpenForm "clientes", , , "nombrecompañia like ""*"" & [forms]![formulario7]![buscarpornombre] & ""*"""

O sea, abre el formulario Clientes con aquellos registros que en la cadena del nombre de compañía esté lo que hayas escrito en el cuadro de texto BuscarporNombre

Muchas gracias... disculpa que fui poco conciso. Reformulo la pregunta: Cómo debo redactar la condición WHERE del comando EncontrarRegistro de tal manera que no se limite al contenido de la variable por ej. "Juan", sino que incluya a "Juan Carlos" y a "Carlos Juan"...?

Yo he puesto lo siguiente (y no hace lo que necesito): 

="[Mi_Tabla]![Nombre]= ' " & [Variables temporales]![BuscarRegistroPorNombre] & " ' "

Solo tienes que sustituir lo de [forms... por tus valores dejando los asteriscos de antes y después como están

Funcionó... al menos parcialmente, aparecen dos dificultades: 

1- Cuando presiono "enter" en el formulario Buscar, se abre un cuadro de texto que dice introduzca el parámetro (ya había introducido el parámetro de búsqueda)... Cómo hago para que tome el parámetro que introduje sin que se abra ese cuadro de texto?

2- Cuando salgo del formulario de búsqueda y quiero moverme por los formularios, sigue desplazándose de acuerdo al criterio de búsqueda... y no de a uno como debería ser. 

Gracias....!

Si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te preparo un ejemplo,. Que es como se ve mejor. Si lo haces, en el asunto del mensaje pon tu alias Mufun, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas