Access - Duda casillas de verificación para tener en cuenta cuadros combinados

   
Vista:

Duda casillas de verificación para tener en cuenta cuadros combinados

Publicado por JAIME (9 intervenciones) el 02/07/2012 11:21:02
Hola a todos,

Me pongo en contacto con todos vosotros para ver si me podéis sacar de un pequeño apuro. La situación es esta:

Actualmente tengo realizada una base da datos que me permite generar informes filtrados tras haber seleccionado la variable pertinente de 4 cuadros combinados a los que hago referencia en el código:

strWHERE = "LOCALIDAD = '" & Me![Texto55] & "'" & " and PROVINCIA = '" & Me![Texto57] & "'" & " and PAÍS = '" & Me![Texto59] & "'" & " and CP = '" & Me![Texto61] & "'"
' me aseguro de que hay datos para esta localidad antes de abrir el informe
If DCount("Localidad", "Hoja1", strWHERE) Then
DoCmd.OpenReport "Listado por localidad", acViewPreview, , strWHERE
Else
MsgBox "Resultado inexistente, por favor comprueba la sintaxis de los campos", vbInformation + vbOKOnly, "SIN DATOS"
End If


El caso es que a la larga, el tener que ir introduciendo los 4 campos a la vez para cada consulta, es un poco engorroso, de modo que he añadido 4 casillas de verificación con la idea de que cada una permita seleccionar a uno de los cuadros combinados, es decir, que a la hora de generar informes sólo se tengan en cuenta los cuadros combinados cuya casilla de verificación se haya seleccionado... y ese es mi problema, que no se me ocurre como puedo modificar el código para que strWHERE tenga en cuenta o no los campos Texto55, Texto57, Texto59 y Texto61 según esté o no marcada su casilla de verificación.

¿Alguien podría orientarme por favor?

Muchísimas gracias de antemano
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

Duda casillas de verificación para tener en cuenta cuadros combinados

Publicado por Rubén (47 intervenciones) el 02/07/2012 12:55:06
Hola:

Imagino que a la hora de crear la cadena del "Where" tendrás que hacer algo como:

strWHERE=""

if casillalocalidad = true then
strWHERE=strWHERE & "LOCALIDAD = '" & Me![Texto55]
endif

if casillaprovincia = true then
if Len(strWHERE)>0 then strWHERE = strWHERE & "'" & " and "
strWHERE = strWHERE & "PROVINCIA = '" & Me![Texto57]
endif

(etc...)

Un saludo
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

Duda casillas de verificación para tener en cuenta cuadros combinados

Publicado por JAIME (9 intervenciones) el 02/07/2012 23:37:22
Muchas gracias por la respuesta Rubén, pero me temo que cuando sustituyo mi strWhere por las instrucciones que me indicas, me da error 3075 cuando llega a la línea:

If DCount("Localidad", "Hoja1", strWHERE) Then

¿Se te ocurre a qué puede ser debido? La verdad es q estoy perdido del todo, ya que nunca antes había trabajado con casillas de verificación

Un saludo!!
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

Duda casillas de verificación para tener en cuenta cuadros combinados

Publicado por Rubén (47 intervenciones) el 03/07/2012 08:43:13
Hola, Jaime:

En el método que te propongo, lo único que se hace es ir construyendo la cadena según las diversas opciones, y en el ejemplo que te puse copié a groso modo lo que ponías tú, por lo que no sé si hay algún error de sintaxis.
Te aconsejo que uses el depurador de código y le pongas una pausa antes del "If" que me indicas, para ver qué valor de strWHERE le estás pasando (o también, de forma más artesanal, coloca antes del "If" una función provisional tipo "MSGBOX strWHERE").
Por lo que he visto, es posible que, tal y como te puse, falte añadir la comilla del final, con lo que las líneas en que se añade la condición deberían ser del tipo
strWHERE=strWHERE & "LOCALIDAD = ' " & Me![Texto55] & " ' "
Nota: para que se vea bien aquí he puesto espacios a mayores, que deberías suprimir:
strWHERE=strWHERE & "LOCALIDAD = '" & Me![Texto55] & "'"

Un saludo
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

Duda casillas de verificación para tener en cuenta cuadros combinados

Publicado por JAIME (9 intervenciones) el 03/07/2012 10:27:53
Hola Rubén,

Muchísimas gracias por tus respuestas.

Finalmente he construido el código de forma un poco arcaica poniendo diversos strwhere por separado, olvidando construir una sola cadena (desesperación, jejej):

...
If Verificación83 = True And Verificación85 = True Then
strWHERE = "PROVINCIA = '" & Me![Texto57] & "'" & " and PAÍS = '" & Me![Texto59] & "'"
End If

If Verificación83 = True And Verificación87 = True Then
strWHERE = "PROVINCIA = '" & Me![Texto57] & "'" & " and CP = '" & Me![Texto61] & "'"
End If
...


Un saludo!!
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