Formulario de búsqueda.

Antes de nada agradecerte tu atención por leer mi pregunta.
Quisiera crear un formulario donde ingrese más o menos unas 5 cajas de texto, que al meter el valor en todas o en alguna solo, me abra otro formulario con el resultado en los campos de los valores que he introducido en el formulario de búsqueda.
Es decir si tengo 3 campos en el formulario de búsqueda y relleno los todos o alguno de los campos, me abra el otro formulario con los registros que coincidan.
Ej: campo1= 25 años --> me abra el formulario con todas las personas que tienen esa edad.
ej2: campo1= 25 , campo2= rubio ---> me abra el formulario con todas la personas que cumplan esos dos requisitos.
También me gustaría que no me tuviera que limitar a poner el texto completo, si no que si por ejemplo el otro campo que me falta es de apellidos y quiero ver a todas las personas que se llamen "garcia", que no tenga que escribir garcía si no por ejemplo "gar"

1 respuesta

Respuesta
1
Pero como casi todo lo que es un poquito elaborado requiere conocimientos de visual basic.
A ello. Hazte tu formulario de resultados como más te guste, basado en la tabla donde tienes la información. Lógicamente te apoarecerá con todos los registros, pues aún no hemos filtrado nada. Cuando lo tengas lo grabas con cualquier nombre, por ejemplo Formulario2
Ahora vamos al de búsqueda. Pones los campos que quieras, y te fijas en el nombre que les asigna access, o le pones el nombre que más te guste. Pones además un botón. Si te salta el asistente, cancélalo.
Abre la ventana de propiedades del botón (en el menu ver/propiedades, o el icono de la manita) y en la pestaña 'eventos' te buscas el que se llama 'al hacer click'. Te sitúas en el campo y pulsas el botón de puntos suspensivos que te aparece. Si te pregunta, selecciona 'generar código'
Estarás ahora en el editor de visual basic, access te ha construido una cabecera de la función, algo así como
private sub boton1_click()
end sub
Dentro es donde tienes que poner el código que quieras. Voy a hacer el ejemplo con dos campos, c1 y c2 de nombre, siendo c1 de tipo alfabético (un nombre) y el otro numérico (la edad) para que veas la diferencia
docmd. OpenForm "formulario2",,,"nombre like '" & me.c1 & "' and edad=" & me. C2
Vale, esto es el ejemplo tonto suponiendo que tanto c1 como c2 tengan datos, si no es así da un error. Hay que comprobarlos antes. ¿Cómo? Pues en vez de poner eso pones
dim t$
if not isnull(me.c1) then
t="nombre like '" & me.c1 & "'"
endif
if not isnull(m2.c2) then
t=t & iif(t>""," and ","") & "edad=" & me.c2
endif
docmd.openform "formulario2",,,t
Bueno, pues espero que esto resuelva la pregunta, y que no te líes. Se le coge el truco enseguida.
Muchísimas gracias, era justo lo que estaba buscando. Da gusto encontrar gente como tu. Te quisiera también hacer una pregunta, pero lo haré en otra nueva para poder puntuarte más.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas