Where condition para un informe

Tengo hecho un formulario que actúa como diálogo para establecer, mediante dos cuadros combinados vinculados (Localizacion y Sublocalizacion), los valores que el usuario quiere utilizar para filtar un informe (del mismo nombre en el dicho informe). Estoy escribiendo el código para abrir el informe con esos dos parámetros, pero cuando llego a la Where Condition, no sé cómo redactarlo. Este es el código que tengo de momento.

Private Sub Sublocalizacion_AfterUpdate()
DoCmd.OpenReport "04 Musica por localizacion", acViewPreview, , "[Localizacion]='" & Me.Localizacion And [Sublocalizacion]='" & Me.Sublocalizacion,
DoCmd.Close acForm, Me.Name
End Sub

1 respuesta

Respuesta
1

Prueba así:

Private Sub Sublocalizacion_AfterUpdate()
DoCmd.OpenReport "04 Musica por localizacion", acViewPreview, , "[Localizacion]='" & Me.Localizacion & "' And [Sublocalizacion]='" & Me.Sublocalizacion & "'"
DoCmd.Close acForm, Me.Name
End Sub

Considerando que ambos campos son de tipo texto. 

¡Gracias! 

Hola. A ver, no me funciona, pero creo que porque tengo liado el nombre de los campos. Te los numero como se ponen en las propiedades de cada cuadro combinado -en el formulario-, y en cada campo -en el informe. A saber:

- En el formulario, primer cuadro combinado: "Localizacion"; segundo cuadro combinado: "Sublocalización". La columna dependiente en los dos casos da como resultado de tipo texto.

- En el informe, y aquí es donde tengo mis dudas, es si el nombre de cada campo a utilizar en el código VBA es el nombre que viene de la tabla de origen (tengo una tabla principal, con la música, y  dos tablas, localización y sublocalización, vinculadas con la principales a través de un autonumérico), en cuyo caso serían: "Localizacion" y "Sub-localización" (ambos de tipo texto), de lo cual deduzco que no habría obligación de que apareciesen en el informe. Sin embargo, de no ser así, tengo creado dos campos, con los nombres: "Localizacion" y "Sublocalizacion", que dan también como resultado campos de tipo texto.

Espero sirva esta aclaración para terminar de resolver la duda.

Muchas gracias.

En la parte del WHERE tienes que poner el nombre del campo de la tabla/consulta origen del informe (Localizacion y Sublocalizacion, en principio) e igualarlo al valor por el que quieres filtrar, en tu caso los que vienen del formulario (MeLocalizacion y Me. Sublocalizacion).

Por lo que amplías, y sin que indiques el tipo de error que te da, veo que tu segundo cuadro combinado se llama "Sublocalización" (con acento), por lo que el código sería:

Private Sub Sublocalizacion_AfterUpdate()
DoCmd.OpenReport "04 Musica por localizacion", acViewPreview, , "[Localizacion]='" & Me.Localizacion & "' And [Sublocalizacion]='" & Me.[Sublocalización] & "'"
DoCmd.Close acForm, Me.Name
End Sub

Ya está solucionado. Tan sencillo como que estaba poniendo mal el nombre del campo Sublocalizaciones de la tabla de origen. Muchas gracias por la paciencia y el tiempo. Procedo a votarle. ¡Muchísimas gracias!

Disculpa, estoy probando y me filtra por localización, pero no por sub-localización. En otras bases de datos, para no equivocarme, siempre he puesto el mismo nombre en todos lados. Pero aquí no puedo, porque tengo un guión. Es decir, y ahora viene la pregunta, ¿cómo puedo poner esto en VBA:

Private sub Sub-localización_AfterUpdate()

Pues... saca las propiedades de tu cuadro combinado, vete a la pestaña eventos->Después de actualizar, escribe [Procedimiento de Evento] y pulsa el botón con los 3 puntos. Access te llevará al editor de VBA y ya te creará esa línea.

Como consejo, te recomiendo que evites acentos, guiones, espacios y en general cualquier signo o símbolo en los nombres de las tablas, precisamente para evitar estos problemas.

Si no te va, necesitaría ver tu BD para estudiar cómo solucionarlo.

Pues si pudiera ver la base de datos, me ayudaría mucho a solventar el callejón sin salida donde estoy. Ya sé que los acentos llevan a eso, voy a intentar arreglarlo antes. Dígame cómo se la paso.

Haz una copia de tu BD, comprímela con Winrar o similar, y tienes varias alternativas:

1/ Si usas dropbox, google drive..., la subes y me pones aqui el enlace para descargarla.

2/ Súbela a www.filebig.net (o web similar) y me pones el enlace de descarga

3/ Envíamela a: [email protected]

https://www.dropbox.com/s/vb135eyqlk5itjz/M%C3%BAsica.mdb?dl=0 

El formulario es "03 Dialogo musica por localizacion" y el informe "04 Musica por localizacion".

Muchas gracias.

http://www.filebig.net/files/9E5ZMcuAHM 

Yo creo que sí funciona. Lo único que hice fue modificar el origen del informe, porque en el que tú me enviaste la tabla sublocalización no estaba relacionada con la de música. La quité, la volví añadir y aparentemente va todo bien...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas