Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Filtrar por una "casilla de verificación"

Estas en el tema de Filtrar por una "casilla de verificación" en el foro de Bases de Datos General en Foros del Web. Access 2003. He puesto una casilla de verificación (independiente, no es ningún campo de ninguna tabla) en un formulario. ¿Cómo puedo filtrar en una consulta ...
  #1 (permalink)  
Antiguo 19/06/2008, 10:55
 
Fecha de Ingreso: junio-2008
Mensajes: 20
Antigüedad: 15 años, 10 meses
Puntos: 0
Filtrar por una "casilla de verificación"

Access 2003.
He puesto una casilla de verificación (independiente, no es ningún campo de ninguna tabla) en un formulario.
¿Cómo puedo filtrar en una consulta por el valor de esa casilla de verificación? ¿Cómo he de llamarla en la consulta? ¿Sí, No, Activado, No activado, 0, -1 ...?
Pretendo filtrar campos tipo fecha en función de si está marcada o no la casilla de verificación, pero no me funciona la instrucción del tipo:

siinm([forms_activo]![casilladeverificación]=-1; Es nulo; Es negado Nulo)

tampoco:
siinm([forms_activo]![casilladeverificación]=Sí; Es nulo; Es negado Nulo)


Muchas gracias.
  #2 (permalink)  
Antiguo 20/06/2008, 02:30
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Filtrar por una "casilla de verificación"

Para referirte a un control de un form desde una consulta, prueba mejor asi:

forms!nombreDelForm!NombreDelControl

Y para comprobar el estado, puedes uasra tambien true-false.

Un saludo
  #3 (permalink)  
Antiguo 23/06/2008, 13:11
 
Fecha de Ingreso: junio-2008
Mensajes: 20
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Filtrar por una "casilla de verificación"

Gracias Taribo.
En realidad sí estaba poniendo Forms!NombreForm!NombreControl para llamar a la casilla de verificación, pero no me funcionaba.

El caso es que ahora funciona, pero sigo sin saber muy bien por qué.
Te cuento un poco por si te interesa:
En el diseño de la consulta se ven los siguientes criterios:
- bajo un campo tipo texto:
SiInm([forms]![Listado_RJ_PL]![verif10]=Sí;"RJ") O SiInm([forms]![Listado_RJ_PL]![verif12]=Sí;"PL")
(siendo verif10 y verif12 dos controles "casillas de verificación" del formulario)

- pero bajo el campo [FIN REDUCCION] de tipo fecha no veo ningún criterio puesto, y sin embargo en la instrucción SQL que genera Access sí veo lo siguiente:

..... WHERE ((([REDUCCION JORNADA].RJ_PL)=IIf([forms]![Listado_RJ_PL]![verif10]=Yes,"RJ") Or ([REDUCCION JORNADA].RJ_PL)=IIf([forms]![Listado_RJ_PL]![verif12]=Yes,"PL")) AND ((IIf([Forms]![Listado_RJ_PL]![Vigor]=True,([REDUCCION JORNADA].[FIN REDUCCION]) Is Null Or ([REDUCCION JORNADA].[FIN REDUCCION])>=([Forms]![Listado_RJ_PL]![Vigor])))<>False)) OR ((([REDUCCION JORNADA].RJ_PL)=IIf([forms]![Listado_RJ_PL]![verif10]=Yes,"RJ") Or ([REDUCCION JORNADA].RJ_PL)=IIf([forms]![Listado_RJ_PL]![verif12]=Yes,"PL")) AND ((IIf([Forms]![Listado_RJ_PL]![Fdesde]=True,(([REDUCCION JORNADA].[FIN REDUCCION])>=([Forms]![Listado_RJ_PL]![Fdesde]) And ([REDUCCION JORNADA].[FIN REDUCCION])<=([Forms]![Listado_RJ_PL]![Fhasta]))))<>False))......

Lo cierto es que probé mil maneras y ahora funciona perfectamente, pero confieso que no sé por qué no veo el criterio que filtra el campo fecha en el Modo Diseño de la Consulta.

Muchas gracias.
  #4 (permalink)  
Antiguo 10/10/2011, 13:32
 
Fecha de Ingreso: octubre-2011
Mensajes: 1
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Filtrar por una "casilla de verificación"

La clave esta en crear una nueva columna en la consulta donde:

Campo: siinm([forms_activo]![casilladeverificación]=true; [Tabla].[Fecha] Es nulo; [Tabla].[Fecha] Es negado Nulo)
...
Mostrar: sin marcar
Criterios: <>false

Es necesario que la columna [Tabla].[Fecha] se muestre en la consulta.

Lo que conseguimos con esta nueva columna es precisamente lo que buscamos. Si la casilla esta activada verifica si el campo [Tabla].[Fecha] es nulo, en cuyo caso el valor de la columna es false. Si por el contrario existe una fecha en ese registro el valor será true. Al final lo que tendremos es una columna con tru/false dependiendo de si tenemos fecha o no en el registro. El criterio <>false es para quedarnos únicamente con los campos true que son los que contienen fecha. Si no estuviese marcada la casilla sería al contrario.

Espero que sirva para clarificar ideas ya que a mi me ha llevado una tarde lograr que me funcionase.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:56.