Exportar y visualizar informe en pdf

Tengo un informe que una vez generado quisiera visualizarlo en PDF y luego guardarlo, he revisado varios ejemplos encontrados pero no logro lo que necesito pues me ha funcionado colocando el botón en el informe pero cuando quiero colocarlo en el formulario principal que es donde debe ir me genera error

He utilizado tres lineas de código la primera me permite ver el informe normal

DoCmd.OpenReport "INF_CRED_MES", acPreview

La segunda me genera un informe en pdf y lo guarda automaticamente en la carpeta donde se encuentra la base de datos

DoCmd.OutputTo acReport, "INF_CRED_MES", acFormatPDF, CurrentProject.Path & "\INF_CRED_MES.PDF"

Y la tercera me genera el informe en pdf y me permite guardarlo a través de un cuadro de dialogo

DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="INF_CRED_MES", OutputFormat:=acFormatPDF, OutputFile:=RutaYFicheroPDF, AutoStart:=False 'True 

La cuestión es que quisiera poder ver el informe en pdf y luego si guardarlo pero desde el formulario principal ya que el informe se genera de un subformulario filtrado

1 Respuesta

Respuesta
2

Rafael: Para visualizar elinforme el Parámetro AutoStart ha de ser True.

Hay varias cosas que no entiendo:

DoCmd.OutputTo acReport, "INF_CRED_MES", acFormatPDF, CurrentProject.Path & "\INF_CRED_MES.PDF"

Y

DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="INF_CRED_MES", OutputFormat:=acFormatPDF, OutputFile:=RutaYFicheroPDF

Hacen lo mismo y no veo la razón de repetirlas.

La Variable RutaYFicheroPDF no veo que la tengas declarada, salvo que esté en algún otro sitio.

Y otra parte que no acabo de entender es ..."y luego si guardarlo pero desde el formulario principal ya que el informe se genera de un subformulario filtrado"

Repasa si quieres el Método DoCmd.OutputTo..

https://msdn.microsoft.com/en-us/vba/access-vba/articles/docmd-outputto-method-access 

Saludos >> Jacinto

Disculpa al parecer no me explique bien no uso las tres instrucciones al mismo tiempo, y lo más importante es que estas instrucciones me funcionan con un botón o comando pero en el informe y lo que necesito es hacerlo desde el formulario principal y me da error en el caso particular de la instrucción donde dices que no he declarado la variable he tratado de hacerlo y me sigue diciendo que no lo he hecho si me pudieras ayudar con eso la instrucción que creo debo usar es

DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="INF_CRED_MES", OutputFormat:=acFormatPDF, OutputFile:=RutaYFicheroPDF, AutoStart:=False 'True

Dejando en true la función AutoStart, pero me dice que no he declarado la variable...

Rafael: Doy por supuesto de que abres el Informe con la línea:

DoCmd.OpenReport "INF_CRED_MES", acPreview

y por lo que veo quieres guardar el PDF en >> CurrentProject.Path & "\INF_CRED_MES.PDF"

Entoces:

Dim RutaYFicheroPDF As String

RutaYFicheroPDF = CurrentProject.Path & "\INF_CRED_MES.PDF"

Y ahora la línea:

DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:="INF_CRED_MES", OutputFormat:=acFormatPDF, OutputFile:=RutaYFicheroPDF, AutoStart:=True

Mis saludos >> Jacinto

EXCELENTE Coloque lo que me indicas y funciona ahora trate de anexarle la fecha al nombre con que se guarda el archivo pero me da un error lo que anexo es esto

ObjectName:="INF_CRED_MES" & date

Pero me da este error

Se ha producido el error 2059 en tiempo de ejecución:

Microsoft access no encuentra el objeto '|1'.

Rafael: Los Nombres de Fichero no admiten ciertos caracteres y entre ellos está la "/", que la estás introduciendo con el Date().

Además, si quieres que en el Nombe del Fichero que guardas esté esa Fecha, el lugar donde la pones no es el adecuado.

Aunque no se necesite, pero a efectos didácticos, te pongo la declaración de otra variable y su uso.

Dim StrFecha As String

StrFecha = Format(Now(), "yyyymmddhhnnss")   'Esto es hasta Segundos

Si solo uieres a nivel de "día"

StrFecha = Format(Now(), "yyyymmdd")

Y entonces el Nombre completo del Fichero sería >>

RutaYFicheroPDF = CurrentProject.Path & "\INF_CRED_MES"  & StrFecha & ".pdf"

Quedando al final:

DoCmd.OutputTo acOutputReport, "INF_CRED_MES", acFormatPDF, RutaYFicheroPDF, True, , , acExportQualityPrint

Mis saludos >> Jacinto

Buenas tardes Jacinto: las instrucciones las he ido adaptando y funcionan bien solo que tengo un detalle el informe que guardo se le aplica un filtro por fechas el cual ya lo tengo declarado como variable general

En la instrucción de visualizar el informe utilice 

DoCmd.OpenReport "INF_CRED_ACT_VEN", acPreview, , FiltroFechas

y efectivamente me funciono pero en el código para guardar el informe en pdf no encuentro como hacerlo, agradezco tu atención 

Rafael: Creo que cada vez nos apartamos más de la pregunta original y vamos a alargar, propiciando el que más de un usuario no siga el hilo y quede confundido.

Por lo que comentas la duda inicial está resuelta, por lo que sería adecuado que generes otra nueva de cuya respuesta se puedan beneficiar otros usuarios, y a la vez tu puedas recibir la resouesta de más de un Experto y usar la metodología que mejor se adapte a lo que pretendes resolver. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas