Parámetro en consulta para buscar registro

Tengo una bbdd de Access. En uno de los formularios me gustaría incluir un cuadro combinado que me permitiera introducir a mano cualquier parte del campo nombre y me mostrara el resultado que busco.

Si hago un formulario a partir de una consulta con criterio [a quien buscas] me aparece lo que yo quiero, pero yo quisiera no tener que teclear todo el nombre, si no que con poner "Jua" ya me apareciera el Juan de la lista.

Recuerdo que había un criterio: Como "*" &"*" o algo asi, pero no recuerdo bien como era

1 respuesta

Respuesta
3

Efectivamente, tienes razón. Pero no necesitas para nada un combinado. Vamos a suponer que pones un cuadro de texto, al que llamaré Texto5. En sus propiedades-eventos.Después de actualizar crea un procedimiento de evento y entre Private Sub... y End Sub pon

me.recordsource="select * from tabla origen del form where pais=""*""&'" & me.texto5 & "'&""*"""

Donde pongo pais, tienes que poner el campo por donde debe buscar.

Así, si escribo lem el origen de registros del formulario serán aquellos(por ejemplo) de la tabla Clientes cuyo país tenga la cadena lem como aLEMania, y aunque no sea un país JerusaLEM

¡Gracias! Hoy mismo lo pruebo!!

me.recordsource="select * from tabla origen del form where pais=""*""&'" & me.texto5 & "'&""*"""

Solo tengo que cambiar "país"? No le pongo la tabla de.origen?

Si tengo el formulario Clientes basado en la tabla del mismo nombre, aunque la tabla se podía llamar de otra forma, los cuadros de texto del formulario se podían llamar de otra forma, pero por comodidad.

Le he añadido el cuadro de texto, texto12

En el cuadro de texto escribo anc para que me busque los países que tengan esa cadena

Al pulsar Enter

El código

Private Sub Texto12_AfterUpdate()
Me.RecordSource = "select * from clientes where pais like ""*""&'" & Me.Texto12 & "'&""*"""
End Sub

¡Gracias! Gracias mil!!!

Hola! Funciona a la perfección . Muchas gracias! Hay manera de que busque en dos campos, es decir , nombre y apellido, por ejemplo? 

Supongo que te refieres a usar el mismo cuadro de texto. No tienes problemas. Yo te lo pongo con Nombrecliente ya que la tabla de prácticas la tengo así. Basta con

Private Sub Texto12_AfterUpdate()
Me.RecordSource = "select * from clientes where pais like ""*""&'" & Me.Texto12 & "'&""*"" or nombrecliente like ""*""&'" & Me.Texto12 & "'&""*"""
End Sub

Me había olvidado, puedes encadenar hasta 99 condiciones AND y OR

Genial! Así lo hago. Lo que pasa es que cuando añado campos de otras tablas me muestra como error. No puedo añadir campos de otras tablas, que tienen relaciones?

O se puede hacer lo mismo pero cogiendo origen una consulta? Perdón por la brasa.. .

Al no saber como es la construcción no te puedo afirmar nada, pero en un principio da igual lo que añadas, el(los) registro(s) te los busca en función de lo que hayas puesto en el cuadro de texto. Por ejemplo, no hagas caso al formulario, si tengo un formulario con subformulario que dependen de las tablas Factura y DetalleFactura ambas relaionadas

Si en el cuadro de texto 18 escribo algo

y pulso Enter

Me ha "buscado" en la tabla relacionada DetalleFactura aquellos productos que tengan la cadena an, como mANzana y narANjas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas