¿Cómo exportar informe de access estableciendo el nombre y preguntando la ruta?

Estoy intentando exportar un informe de access a pdf, el problema es que quiero que cada archivo pdf que genere se llame distinto, y que la ruta donde se guarde te la pregunte cada vez. No consigo hacer las dos cosas a la vez es decir, o establezco el nombre que quiero y se guarda por defecto en mis documentos o no establezco el nombre y me pide donde guardar...

¿Alguna Idea? Os copio el código

Private Sub Exportar_Click()
Dim MiTab As Recordset, MiCriterio As String, Nombre As String
On Error GoTo Er_export_Click
PDFfilename = "" & Chr(39) & Forms!AlbaranE!Nalbaran & Chr(39) & "_" & Chr(39) & Forms!AlbaranE!Contrata & Chr(39) & ".pdf"
 If IsNull(Me!Nalbaran) Or Me!Nalbaran = "" Then
 MsgBox "Debe seleccionar un Albarán", vbCritical
 DoCmd.GoToControl "Nalbaran"
 Else
 MiCriterio = "Albaranes.Albaran=" & Chr(39) & Me!Nalbaran & Chr(39)
 Set MiTab = CurrentDb.OpenRecordset("SELECT Albaranes.Albaran FROM Albaranes WHERE " & MiCriterio, dbOpenDynaset)
 If MiTab.EOF() Then
 MiTab.Close
 MsgBox "No se han encontrado albaranes", vbCritical
 Else
 MiTab.Close
 DoCmd.OpenReport "Conduce", acViewPreview, , MiCriterio
 DoCmd.OutputTo acOutputReport, "Conduce", acFormatPDF, PDFfilename, False
 MsgBox " Exportación completada! "
 End If
 End If
Er_export_Click:
End Sub

1 Respuesta

Respuesta
1

El argumento que proporciona la ruta y nombre del pdf, es el que le pasas con la variable PDFfilename.

Teniendo esto en cuenta, tendrás que definir previamente al nombre la ruta de la carpeta, por ejemplo, para una ruta "fija":

PDFfilename ="C:/Informes/"

PDFfilename = PDFfilename & "" & Chr(39) & Forms!AlbaranE!Nalbaran & Chr(39) & "_" & Chr(39) & Forms!AlbaranE!Contrata & Chr(39) & ".pdf"

Otra opción sería usar un inputbox para pedir al usuario la ruta completa de la carpeta, algo así:

PDFfilename =InputBox("Teclee ruta de destino")
PDFfilename = PDFfilename & "" & Chr(39) & Forms!AlbaranE!Nalbaran & Chr(39) & "_" & Chr(39) & Forms!AlbaranE!Contrata & Chr(39) & ".pdf"

Y la mejor opción, usar el FileDialog para seleccionar la carpeta de destino. Para esto, te remito al ejemplo del experto Neckkito, y si tienes alguna duda de su aplicación práctica, preguntas y te oriento: http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/codigo/95-ejemplos-explicados/ejemplos-de-codigo/131-quiero-navegar-y-seleccionar-un-archivo

Un saludo

PD: en vez de usar la variable PDFfilename para la ruta y nombre, puedes crear una variable nueva (miRuta), y en el DocmdOutputTo, usarla así:

DoCmd.OutputTo acOutputReport, "Conduce", acFormatPDF, miRuta & PDFfilename, False

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas