Buscador por dos variables a la vez

Tengo un formulario Access creado donde meto diferentes tipos de información.

Actualmente tengo varios buscadores creados (mediante la macro EncontrarRegistro) que me van al registro según el parámetro buscado, hasta ahí todo bien.

Pero necesito crear un buscador que haga la misma función pero en dos variables a la vez, por ejemplo si tuviera un formulario de empresas y personas responsables de la empresa, yo tengo dos columnas de personas responsables, y me gustaría poder buscar a la vez por el nombre de la persona 1 y el nombre de la persona 2. Sólo he conseguido hacer un buscador por uno de los dos nombres, no por los dos a la vez.

¿Alguna idea?

1 Respuesta

Respuesta
2

Sin saber como tienes construida la tabla origen del formulario, supongamos que el formulario se llama Empresa y que los campos llaman PersonaA y PersonaB. Puedes poner en algún evento

form.recordsource="select * from Empresas where personaa=forms!empresas!cuadrocombinadoA and personaB=forms!empresas!cuadrocombinadoB"

Siendo cuadrocombinado a y B los nombres de los cuadros combinados del formulario donde buscas o escribes los nombres de las personas. El nombre del combinado aparece en sus Propiedaes-Otrs-Nombre

¡Gracias! 

La idea en este caso sería distinta, o sea que yo tengo un campo "Persona" que es el buscador, que quiero que en este mismo campo, poniendo un nombre, me busque dentro de PersonaA y de Persona B, es posible?

Vamos a suponer que la tabla se llama Clientes y tienes dos campos NombreContacto y JefeObra. Supongamos también que el formulario se llama Clientes, y que el cuadro de texto donde vas a escribir el nombre se llama(Propiedades-Otras-Nombre) Buscar. En las propiedades de este último, en Eventos-Después de actualizar crea un prcedimiento de evento y entre Private Sub y End Sub escribe

Form.RecordSource = "select * from clientes where nombrecontacto=forms!clientes!buscar or jefeObra=forms!clientes!buscar"

Así, cundo escribes un nombre y pulses Enter el origen de registros del formulario serán aquel(los) cuyo nombrecontacto o jefeobra sean iguales a lo qe hasescrito.

La instrucción se podría acortar, pero así me parece más pedagógica.

De todas formas, si ves que te lías, y quieres, mándame un mensaje a [email protected] y te mando un ejemplo de las varias preguntas que has hecho. Si lo haces, en el Asunto del mensaje pon tu alias Gerard, ya que si no sé quien me escribe, no los abro.

Haciendo esto me selecciona el registro que quiero, pero no sé por qué me borra el origen de datos y me pone el Select from... etc, y tengo que volver a poner el origen yo ya que sino no me muestra los registros luego.. Qué puedo hacer en ese caso?

Supongamos que en el formulario, buscas un registro, y luego quieres que "todo vuelva a la normalidad", puedes poner, por ejemplo, en el evento Al hacer doble clic del cuadro buscar

Form.RecordSource = "select * from clientes"

Por cierto, si en el cuadro de texto buscar, no quieres tener que escribir todo el nombre a buscar, por ejemplo, en vez de escribir José López García, poner sólo una cadena del nombre López G

En el evento de la respuesta anterior pon

Form.RecordSource = "select * fromclientes where nombrecontacto Like '*" & [Buscar] & "*' or jefeobra like '*" & [buscar] & "*'"

Así, si escribes López, te buscará todos aquellos registros cuyo nombrecontacto o jefeobra tengan la cadena López.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas