Access - Consulta "Entre... Y... "

 
Vista:

Consulta "Entre... Y... "

Publicado por Rob (16 intervenciones) el 31/07/2007 10:44:19
Buenas, estoy realizando una BD con un formulario para realizar busquedas dentro de ella. Tengo un par de cuadros de texto para buscar entre EDAD MINIMA y EDAD MAXIMA. Lo tengo asi:
Entre [Forms]![BusquedaJugadores]![txtedadmin] Y [Forms]![BusquedaJugadores]![txtedadmax]
Pero el problema es: ¿Y si me da lo mismo la edad maxima? ¿O la edad minima? ¿O ambas? Porque probe a añadir a la expresion anterior esto: O Como "*", pero me encuentra todos los registros, independientemente de lo que hubiera en los otros cuadros de busqueda (como altura minima y maxima)...

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta

Publicado por bypato (18 intervenciones) el 31/07/2007 14:44:35
Estimado, no se to mach, pero creo que lo que te falta es un validador, es decir, indicarle al formulario que hacer si la cadena es nula en alguno de los campos, o si es errónea.

Núnca usar el "*" como comodin en una búsqueda, toda búsqueda es siempre por parámetros limitados, sí no, la búsqueda es universal.

Si no fui muy claro en mi explicación solo postealo e intentare hacerlo mejor.

Saludos y suerte

Bypato
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Rob (16 intervenciones) el 31/07/2007 20:35:42
Entonces como podria hacerlo? No me queda del todo claro, llevo poco haciendo cosillas en Access...

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Pepe (766 intervenciones) el 31/07/2007 20:38:33
Prueba a poner

Como "*"&Entre [Forms]![BusquedaJugadores]![txtedadmin] Y "*" &[Forms]![BusquedaJugadores]![txtedadmax]

Pepe
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Rob (16 intervenciones) el 01/08/2007 10:32:26
Me da sintaxis no valida y me resalta el "ENTRE"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Pepe (766 intervenciones) el 01/08/2007 11:29:49
Prueba cambiando el entre por >=

Como>= "*"& [Forms]![BusquedaJugadores]![txtedadmin] Y <="*" &[Forms]![BusquedaJugadores]![txtedadmax]

Pepe
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Rob (16 intervenciones) el 01/08/2007 11:49:45
Lo siento, pero esta vez no da error, simplemente no me encuentra nada...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Chea (1015 intervenciones) el 01/08/2007 00:42:22
En vez de Between puedes usar < y > y luego hacer algo así:

Where (Micampo >=[Forms]![BusquedaJugadores]![txtedadmin] OR [Forms]![BusquedaJugadores]![txtedadmin] IS NULL) AND (Micampo<= [Forms]![BusquedaJugadores]![txtedadmax] OR [Forms]![BusquedaJugadores]![txtedadmax] IS NULL)

Es decir, en cada caso la condición es que sea menor (o mayor) o igual que el campo del formulario o que ese campo del formulario sea nulo.

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Rob (16 intervenciones) el 01/08/2007 10:32:31
Me da un error con el WHERE (La funcion WHERE no esta definida en la expresion)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Chea (1015 intervenciones) el 01/08/2007 16:16:16
Entonces, supongo que no se trata de hacer una nueva consulta, sino de aplicar un filtro. En ese caso, sencillamente quítale el Where, que sobra.

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Rob (16 intervenciones) el 02/08/2007 10:02:11
He aplicado lo que me has dicho y me funciona perfectamente con uno de los campos, pero al intentarlo con otro campo no me funciona.
Me explicare mejor:

Me queda esto:
( [pisossm]![Metros Escriturados] >=[Forms]![BusquedaPisosSM]![txtm2min] OR [Forms]![BusquedaPisosSM]![txtm2min] IS NULL) AND ( [pisossm]![Metros Escriturados] <= [Forms]![BusquedaPisosSM]![txtm2max] OR [Forms]![BusquedaPisosSM]![txtm2max] IS NULL)

y me muestra todos los campos, sin embargo, esta otra:

( [pisossm]![Precio] >=[Forms]![BusquedaPisosSM]![txtpreciomin] OR [Forms]![BusquedaPisosSM]![txtpreciomin] IS NULL) AND ( [pisossm]![Precio] <= [Forms]![BusquedaPisosSM]![txtpreciomax] OR [Forms]![BusquedaPisosSM]![txtpreciomax] IS NULL)

me funciona perfectamente...

Los dos campos forman parte de la misma tabla (pisossm) y el tipo de datos es texto en ambos. La busqueda deberia realizarse igual, no? Al fin y al cabo, la unica diferencia entre estos campos es la cantidad de digitos. Mientras que en precio son digitos de hasta 7 cifras, en m2 se queda como mucho en 3.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Rob (16 intervenciones) el 02/08/2007 12:49:25
Solucionado. Algun problema de Access que duplicaba varias veces el filtro... Ahora todo bien.
Muchisimas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por Rob (16 intervenciones) el 03/08/2007 10:56:46
Despues de varias pruebas he detectado un problema:
Cuando no escribo nada en la busqueda, no me encuentra nada... Bueno, en verdad no me encuentra nada en cuanto dejo algun campo vacio, me explico:
Esta seria la busqueda:

M2 entre _______ y ________
Precio entre ________ y _______
Dormitorios entre ________ y ________

Si dejo m2, precio o dormitorios vacio, sea cual sea, la busqueda me devuelve 0 resultados, siempre tengo que rellenar alguno de los campos, maximo o minimo, pero alguno. Incluso cuando alterno, relleno M2 minimo, precio maximo y dormitorios minimo tampoco me devuelve nada... Sigo exprimiendome el cerebro pero no doy con la solucion...
Si sabeis algo, os lo agradeceria de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar