Access - Llamar a un informe pasándole un parámetro del sql

 
Vista:
sin imagen de perfil

Llamar a un informe pasándole un parámetro del sql

Publicado por leirelo (2 intervenciones) el 29/05/2015 11:00:17
Quiero llamar a un informe desde un formulario access. El informe se carga a partir de una consulta. La consulta sql tiene un parámetro en el where y quiero informarlo desde el formulario.

Consulta1 : select ..... where var1 =[Formularios][Form_form1][variable]

El Informe1 tiene los datos de Consulta1

Desde el formulario1 cuando invoco al Informe1 he intentado pasarlo como argumento como where pero no consigo que funcione.

Así es como lo invoco:

DoCmd.OpenReport "informe1", A_PREVIEW, , "[Formularios].[form_form1].[variable] ='04' "

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
sin imagen de perfil

Llamar a un informe pasándole un parámetro del sql

Publicado por GOOO (46 intervenciones) el 01/06/2015 17:56:19
Hola buen dia

Tu planteamiento de código está incorrecto.
Docmd.OpenReport NombredelInforme,MododeVista,Filtro,CondicionWhere,ModoVentana

Cuando esas vba, la programación en inglés (hasta donde yo sé), entonces tendrías que cambiar lo línea de código
No debes usar -Formularios- sino que -Forms-


DoCmd.OpenReport "Informe1", acViewPreview,,"Campo=" & Forms!NombredelFormulario!Control

Donde:
Campo= El nombre del campo en tu consulta que según se llama -va1- (escribe entonces ese nombre)

Donde: Forms!NombredelFormulario!Variable
Forms= En inglés parar hacer referencia a la colección de formularios cargagos -no tiene cambios-
!NombredelFormulario= El nombre del formulario donde cargas los parámetros -Sería Form1-
!Control= El nombre del control del formulario donde está el valor del criterio -Variable-

Ahora bien, si el campo de la consulta (var1) es tipo texto la sentencia se escribe entre apóstofres.
.... "Campo=' " & Forms!Form1!Variable & "'"

Si es tipo número así como está, si es tipo fecha entre #,
Te recomiendo que veas un poco la ayuda en vba de access.

Saludos
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

Llamar a un informe pasándole un parámetro del sql

Publicado por leirelo (2 intervenciones) el 02/06/2015 08:50:36
Hola,

lo primero muchas gracias, pero sigo teniendo problemas. el informe me pide que le pase la variable var como parámetro, es decir, no identifica la variable de la conuslta del informe con la variable del formulario.
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
sin imagen de perfil

Llamar a un informe pasándole un parámetro del sql

Publicado por GOOO (46 intervenciones) el 02/06/2015 18:06:41
Hola de nuevo.

Para que funcione lo que te sugerí, en la consulta en sí, no tiene que tener ningún criterio o parámetro implementado, porque por código los crea

Ahora, si en la consulta en sí, le pasas el criterio haciendo referencia al formulario, no necesitas volver a generarlo en tú codigo.

Suponiendo que en tu consulta tienes el criterio ya establecido, solo tienes que abrir la consulta
Consulta1 : select ..... where var1 =[Formularios][Form_form1][variable]

Lo que debes hacer es solo esto
DoCmd.OpenReport "informe1", acViewPreview

(Los parámetros ya los tienes en la consulta en sí)

Recomendación:
Mantén abierto tu formulario con el parámetro ya establecido
Abre la consulta directamente (sin codigo), para verificar que el parámetro que tu escribiste es de forma correcta.
Si la consulta te filtra los datos. Entonces solo tienes que abrir el informe
Si la consulta no te filtra, entonces el criterio está mal escrito ([Formularios][Form_form1][variable]), generalmente lleva signo de admiración o punto (! o .)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar