Access, problema al exportar informe a pdf

He creado un código que al cambiar algún dato de un formulario, exporta automáticamente un informe en pdf a una carpeta concreta. He usado el siguiente comando:

DoCmd.OutputTo acOutputReport, "Informe_Control_Comerciales", "PDFFormat(*.pdf)", Ruta_Fichero_Drive, , "", 0, acExportQualityPrint

Funciona correctamente. Sin embargo, al exportar el informe, no ejecuta todos los códigos que se ejecutan al abrir el informe, de ahí que el informe exportado no es correcto.

Me refiero que en el informe he añadido código en la función:

Private Sub EncabezadoDelGrupo0_Paint() y no lo ejecuta al exportar el informe.

Además, este informe tiene un subinforme con código en la función 

Private Sub Detalle_Paint() y tampoco lo ejecuta.

¿Cómo puedo hacer que estos códigos se ejecuten al exportar el informe a pdf?

1 respuesta

Respuesta
2

Jon: Prueba abriendo el Informe Oculto ( o no oculto), en Vista preliminar

DoCmd.OpenReport "Informe_Control_Comerciales", acPreview, , , acHidden

DoCmd.OutputTo acOutputReport, "Informe_Control_Comerciales", "PDFFormat(*.pdf)", Ruta_Fichero_Drive, , "", 0, acExportQualityPrint

DoCmd.Close acReport, "Informe_Control_Comerciales"

Ya me comentarás si se te arregla el problema. Un saludo >> Jacinto

Sigue imprimiendo mal el informe. He hecho la prueba de poner en el comando que lo abra en vista normal (AcWindowMode) para poderlo ver y lo imprime mal.

Por si acaso he probado a abrir el informe de forma manual, y si que lo imprime bien.

Por tanto, lo imprime mal, cuando ejecuto el comando de abrir el informe.

Ahora si que no entiendo nada.

Jon: Sinceramente no se ver en ese trozo de código no se ver de donde puede venir el error.

Si pones todo el código es posible que me de una pista.

No obstante yo crearía variables para luego adjudicarlas a los parámetro del OutputTo

Algo así:

Dim NombreInforme As String ,RutaPDF As String, RutaYFichero As String

NombreInforme = "Informe_Control_Comerciales"

RutaPDF = Application.CurrentProject.Path & "\InformesPDF\"  'O la que tu tengas

NombreInfPDF = NomreInforme & ".pdf"

RutaYFicheroPDF = RutaPDF & NombreInfPDF

DoCmd. OutputTo acOutputReport, NombreInforme, acFormatPDF, RutaYFicheroPDF, False,,, acExportQualityPrint 'Si se quiere visualizar el PDF >> Poner True

Así por código puedes ir viendo el valor que toma cada una. Aparte ejecuta el código de tu informe paso a paso, para ver si te lo ejecuta correctamente. Un saludo >> Jacinto

¡Gracias Jacinto!

Lo he solucionado. La solución ha sido copiar el código que tenía en el evento "Al pintar", tanto en el informe, como en el subinforme, en el evento "Al imprimir".

Ahora va perfecto. Gracias por tu ayuda. Pongo la solución por si puede ayudar a alguien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas