Crear un PDF desde un informe y poder variar el nombre al archivo y la dirección para guardarlo

Desde un formulario me interesa un botón que pueda guardar directamente un PDF de un informe y pueda darle un nombre diferente a ese Informe y una dirección para guardarlo.

Actualmente me saca por defecto el mismo nombre del informe en todos los PDF que realizo y necesito darle nombres diferentes a cada proceso que hago.

1 Respuesta

Respuesta
1

Juan: Te escribo un patrón de código que puedes modificar y adaptar a tus necesidades.

Public Sub GeneraUnPDF()
'Ha de estar declarada una Variable Publica con el Nombre >> Public NombreInforme As String
Dim RutaPDF As String
Dim NombreInfPDF As String
Dim RutaYFicheroPDF As String
NombreInforme =”ElNombreDeTuInforme” ‘Ejemplo>>”RptVentas”
‘Para que se guarde en una subcarpeta de donde está la BD. Hemos de crearla con el Nombre de InformesPDF
RutaPDF = Application.CurrentProject.Path & "\InformesPDF\"
‘En este Ejemplo el PDF se llamaría RptVentas + IdCliente.pdf
NombreInfPDF = NombreInforme & Me.IdCliente & ".pdf"
RutaYFicheroPDF = RutaPDF & NombreInfPDF
DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:=NombreInforme, OutputFormat:=acFormatPDF, OutputFile:=RutaYFicheroPDF, AutoStart:=False 'True
End Sub

Si tienes dificultades de Interpretación me comentas. Mis saludos << jacinto

Juan: Se me ha pasado comentarte, aunque supongo que tu ya lo tienes en cuenta, que en ese botón que citas, y en el Evento click has de Poner.

Privae Sub TuBoton_Click()

Call GeneraUnPDF

End Sub

Mis saludos >> Jacinto

Hola Jacinto, muchas gracias por tu ayuda.

No tengo muy claro todo lo que me has indicado. Te explico a ver si voy bien encaminado.

¿He de crear un Modulo y meter todo lo que me has mandado variando los parámetros y después desde un botón en el Form hacer una Call al modulo?

Después tengo un poco de problemas de interpretación a lo que me indicas:

Te digo los datos que necesito mover:

Directorio: Disco C:\InformesPDF

Nombre del Informe: Presupuestos

El idCliente no se exactamente a que se refiere si es el Código del Cliente o corresponde a otro parámetro.

Lo que necesito es poderle dar un nombre diferente por cada uno de los PDF que haga y que tomen el nombre del Cliente presupuestado y que se guarden en el Directorio indicado o en otro predefinido.

Si necesitas más datos dímelo y te los mando de inmediato.

Gracias y un Saludo


                    

Hola de nuevo. Me he adelantado a probar lo que em has dicho y me da los siguientes errores.

He corregido algunos errores que me decía que no eran corectos y esto es lo que me ha quedado desues de corregir estas líneas que están en negrilla:

Public Sub GeneraUnPDF()
'Ha de estar declarada una Variable Publica con el Nombre >> Public NombreInforme As String
Dim RutaPDF As String
Dim NombreInfPDF As String
Dim RutaYFicheroPDF As String
Dim NombreInforme As String
' Nombre del Informe
NombreInforme = ”PRESUPUESTOINFORME”
'Para que se guarde en una subcarpeta de donde está la BD. Hemos de crearla con el Nombre de InformesPDF
RutaPDF = Application.CurrentProject.Path & "\InformesPDF\"
'En este Ejemplo el PDF se llamaría RptVentas + IdCliente.pdf
NombreInfPDF = NombreInforme & IdPresupuesto & ".pdf"
RutaYFicheroPDF = RutaPDF & NombreInfPDF
DoCmd.OutputTo ObjectType:=acOutputReport, ObjectName:=NombreInforme, OutputFormat:=acFormatPDF, OutputFile:=RutaYFicheroPDF, AutoStart:=False 'True
End Sub

y ahora me da este error

en esta instrucion:

OutputFormat:=acFormatPDF, OutputFile:=RutaYFicheroPDF, AutoStart:=False 'True

Ya no se que hacer en este error.

Podría meter el nombre del Cliente en vez del IdPresupuesto, seria más identificativo el mismo a la hora de buscarlo.

Un saludo

Juan: Mientras analizo un poco más el conjunto, esa linea es lógico que te dé el error, porque no va sola, va con la de arriba

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

Prueba y me comentas si te genera un PDF y sobre eso seguimos trabajando.

La carpeta informesPDF la has de crear donde tengas tu BD. Si el directorio donde tienes tu BD es en C, debe aparecerte >> C:\InformesPDF y si la tuvieras por Ejemplo en C:\BasesDeDatos debe aparecerte C:\BasesDeDatos\InformesPDF

Mis saludos >> Jacinto

Juan: mientras analizo un poco más el conjunto, esa linea es lógico que te dé el error, porque no va sola, va con la de arriba

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

Prueba y me comentas si te genera un PDF y sobre eso seguimos trabajando.

La carpeta informesPDF la has de crear donde tengas tu BD. Si el directorio donde tienes tu BD es en C, debe aparecerte >> C:\InformesPDF y si la tuvieras por Ejemplo en C:\BasesDeDatos debe aparecerte C:\BasesDeDatos\InformesPDF

Nota: es la cuarta vez que intento mandar esta respuesta.

Juan: mientras analizo un poco más el conjunto, esa linea es lógico que te dé el error, porque no va sola, va con la de arriba

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

Prueba y me comentas si te genera un PDF y sobre eso seguimos trabajando.

La carpeta informesPDF la has de crear donde tengas tu BD. Si el directorio donde tienes tu BD es en C, debe aparecerte >> C:\InformesPDF y si la tuvieras por Ejemplo en C:\BasesDeDatos debe aparecerte C:\BasesDeDatos\InformesPDF

Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas