Access - Consulta complicada

 
Vista:

Consulta complicada

Publicado por Sebastian (58 intervenciones) el 09/08/2005 22:03:51

Tengo un formulario con campos de busqueda y un subformulario que llama a una consulta segun los campos activados en el formuloario.
Mi idea fue a cada campo asignarle una casilla de verificacion al lado y con esto activarlo o desactivarlo segun a mi gusto al pasar esto el subformulario llama a otra consulta con el campo del formulario que active, ahora por cada campo y su casila de verificacion tengo ya echas unas ctas consultas que me gustaria resumir en una sola aplicando criterios adentro de una misma consulta con esto me ahorraria tantas consultas segun los campos activados aparte para cada uno de estos le tengo que hacer un informe y esto me hace mas pesada la base de datos.

en criterios yo puse.....por ej....para que filtre por Nro leg si esta activado la casilla de verificacion.....SiInm([Formularios]![BuscarAlumnosModificacion]![activarlegajo]=Verdadero,[Formularios]![BuscarAlumnosModificacion]![Legajobusq]) esto busca especificamente si la casilla de verificacion de Nro leg esta activado ahora me falta el sino esta activado que yo le habia puesto...en otro IF o SiInm que haga esto......que filtre por todos los Nro Leg mayores a 0...pero no me da bola no se porque...diganmen como hago el CASO CONTRARIO PARA QUE ME FILTRE TODOS SI NO NECESITO FILTRAR POR ESE CAMPO

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
Imágen de perfil de Alejandro

Filtrar registros según campos activados en un formulario

Publicado por Alejandro (4142 intervenciones) el 06/06/2023 23:14:49
Para filtrar los registros en una consulta según los campos activados en un formulario y resumir las consultas en una sola, puedes utilizar una consulta dinámica con criterios condicionales.

Aquí tienes un ejemplo de cómo puedes hacerlo:

1. Abre la consulta en modo de diseño.
2. En el criterio del campo que deseas filtrar según la casilla de verificación, utiliza la función IIf para aplicar un criterio condicional. Por ejemplo, si deseas filtrar por el campo "NroLeg", el criterio puede ser el siguiente:

1
IIf([Formularios]![BuscarAlumnosModificacion]![activarlegajo]=True, [Formularios]![BuscarAlumnosModificacion]![Legajobusq], ">0")

Este criterio evalúa si la casilla de verificación "activarlegajo" está marcada. Si está marcada, utiliza el valor del campo "Legajobusq" del formulario como criterio de filtrado. Si no está marcada, utiliza ">0" como criterio, lo que filtra todos los NroLeg mayores a cero.

3. Repite el paso 2 para cada campo que deseas filtrar según la casilla de verificación, utilizando la función IIf y los criterios correspondientes.

4. Guarda la consulta y ciérrala.

Ahora, al ejecutar la consulta, aplicará los criterios condicionales según las casillas de verificación activadas en el formulario. Si una casilla de verificación está desactivada, se utilizará el criterio ">0" para filtrar todos los registros en ese campo.

De esta manera, puedes resumir las consultas en una sola consulta y evitar la necesidad de crear consultas separadas para cada campo.

Espero que esta solución te sea útil.
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