Cambiar nombre del informe cuando publico en pdf

Quisiera saber como puedo personalizar el nombre de un informe cuando lo publico en pdf, ya que por ahora cuando lo hago me da el nombre por defecto del informe y yo quiero personalizarlo según los datos que me de este.

1 respuesta

Respuesta
1

Está dificil ayudarte con el campo que deseas incorporar en la cadena del nombre del informe porque no das mucha información, pero te dejo un código que uso para asignar nombre a un informe en PDF de Estado de Cliente donde voy archivando en una carpeta "C:\Mis registros\Estados de Clientes\", todos los informes por nombre de Cliente y Fecha que se emitió (fecha de corte). Entonces al generar el nom, bre del PDF le pongo: NomEstadoCliente = Me.Nombre & "-" & Format(Date, "dd-mm-yyyy") & ".pdf" Esto es el valor del TextBox Me. Nombre que siempre varia porque depende del Cliente que estoy imprimiendo -no tengo que digitar nombre-, y la fecha que se hace el corte del Informe. Así mismo puedes tú agregar o quitar el valor del contenedor que deseas que salga en el nombre.

Quizá te sirva, fíjate en la estructura.

Private Sub EstadoCuentaClientePDF_Click() 'Crea PDf de Reporte Estado de Cliente

Dim strUserName As String, strPath As String, NombreCliente As AcTextFormat

strPath = "C:\Mis registros\Estados de Clientes\"

NomEstadoCliente = Me.Nombre & "-" & Format(Date, "dd-mm-yyyy") & ".pdf"

DoCmd.OutputTo acOutputReport, "ConsultaEstadoCliente", acFormatPDF, strPath & NomEstadoCliente, True

MsgBox "Exportación a PDF exitosa.", vbApplicationModal + vbInformation + vbOKOnly, "Antoniole informa"

End Sub

Hola Antonio, ante todo gracias por preocuparte por mi asunto, lo estoy probando pero me podrías explicar que es cada cosa en la línea DoCmd.OutputTo acOutputReport, "ConsultaEstadoCliente", acFormatPDF, strPath & NomEstadoCliente, True

No termino de entenderlo, me da un error

Gracias de antemano.

Saludos

Hola Antonio, lo tengo casi a falta de saber por que me dice que no coinciden los tipos le he cambiado el tipo de variable y no hay manera, si me sitúo encima del la variable prueba en la línea amarilla me da el valor de 0, sin embargo en si me sitúo en la palabra prueba de la ultima línea me da el nombre de FacturaF20-2 que es lo que busco.

A ver si me puedes echar una mano.

Gracias de antemano

Te explico un poco la línea solicitada en la cual usamos algunas variables. Antes te adelanto que en el código que te pasé no es necesario la variable userName, si te fijas no la usamos... como yo la tomé de un código mío, se me olvidó quitarla, puedes eliminarla.

DoCmd.OutputTo acOutputReport, "ConsultaEstadoCliente", acFormatPDF, strPath & NomEstadoCliente, True

DoCmd. Es un generador de comandos, te manda a hacer algo...

OutputTo acOutputReport: Orientas alsistema que lo que vas a emitir (output) es un tipo de arcivo Report de Access (acOutputReport). Existen varios tipos de acOutPut, por ejemplo acOutputTable, acOutputRequery, etc. En esta ocasión es un Report.

"ConsultaEstadoCliente",: Este texto se llama en el sistema el ObjectName, es decir, el nombre objeto generado que deseas mandar a OutPut. En mi caso es un reporte que sale de una consulta Estado Cliente, en tu caso es "InfoFacturas"

AcFormatPDF: Es el tipo de formato de salida de lo que estás enviando a salir. En este caso queremos un PDF. En sistema es el OutPutFormat

StrPath & NomEstadoCliente: Este es el paso o camino donde deseo que guarde el archivo generado en PDF, y de paso le ponemos nombre. Se llama el OutFile.

True: es la orden de que se autogenere el archivo PDF cuando lo emita... inmediatamente. Si le pones False solo se guarda y no se abre el archivo.

Ahora te explico un poco el error que te da.

Prueba con darle una dirección más concreta al strPath, yo he probado acá y no me da error pero no me ejecuta nada si le pongo solo strPath = "C:\", pero con strPath = "C:\Mis registros\", si lo hace bien.

Hola Antonio, sigue lo mismo, el problema es que me dice que no coinciden los tipos de datos con respecto a la variable que le he colocado en "prueba", me marca un 0 en vez de colocarme el valor de la suma de "FacturaF20-2" estas seguro que la variable "prueba" debe de ser AcTextFormat?.

es que pienso que es donde puede estar el error.

te envío el código entero para que lo entiendas.

Private Sub Comando53_Click()
Dim strPath As String, prueba As AcTextFormat
strPath = "C:\Documentos"
prueba = "Factura" & Me.documento_nombre & ".pdf"
DoCmd.OutputTo acOutputReport, "InfoCabFacturas", acFormatPDF, strPath & prueba, True
MsgBox "Exportación a PDF exitosa.", vbApplicationModal + vbInformation + vbOKOnly, "Antoniole informa"

End Sub

observa bien en la zona de amarillo como  si me sitúo con el ratón por encima de prueba me da un 0 cuando me debería de dar el nombre que le propongo que en este caso seria "FacturaF20-2.pdf, hay algo raro con los tipos de datos.

saludos

Private Sub Comando53_Click()
Dim strPath As String, prueba As String
strPath = "C:\Users\rafa\Documents\ERP-FJ\"
prueba = "Factura" & Me.documento_nombre & ".pdf"
DoCmd.OutputTo acOutputReport, "InfoCabFacturas", acFormatPDF, strPath & prueba, True

Hola Antonio, tal y como sospechaba era la variable prueba, ya lo he conseguido, he tenido que quebrarme la cabeza un poco pero ha merecido la pena.

de nuevo muchas gracias y saludos

Buena suerte con tus desarrollos amigo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas