2016-04-07 3 views
0

Der folgende Code ist an den button_click eines Berichts angehängt. Ich möchte den Bericht unter einem vom Benutzer ausgewählten Namen speichern.Einen Bericht als PDF speichern

Dim fd As FileDialog 
Set fd = Application.FileDialog(msoFileDialogSaveAs) 
fd.Show 

Wenn ausgeführt, erscheint das Speichern unter Dialogfeld, aber es speichert die Datei nicht. Vermisse ich einen Schritt?

+1

Ihnen fehlt der Schritt zum Empfangen des Dateinamens und Exportieren des Berichts in das PDF-Format. – marlan

Antwort

1

Sie sollten als nächstes Export der Bericht zu pdf. Ersetzen Sie die Zeile fd.Show mit:

If fd.Show then 
    DoCmd.OutputTo acOutputReport, "ReportNameHere", "PDF Format (*.pdf)", fd.SelectedItems(1), True 
End IF 

Der letzte Parameter Wahre ist das PDF zu öffnen, nachdem exportiert. Bitte entfernen, wenn nicht benötigt.
HINWEIS: fd.SelectedItems (1) ist die vom Benutzer ausgewählte Datei.

+0

Das sieht aus, als was ich brauchte. "Berichtsname hier" bezieht sich auf den Namen des Berichts im Zugriff, nicht auf den gewünschten Dateinamen, richtig? –

+0

Ja, ein String-Wert des Berichtsnamens. – marlan

1

Sie auch einen boolean dim sollte notCancel genannt, stellen Sie es gleich .show, und dann eine If-Anweisung, verwenden Sie .Execute, zeigt der folgende Code folgendermaßen aus:

Sub SaveFile() 
    Dim fd As FileDialog 
    Dim notCancel As Boolean 
    Set fd = Application.FileDialog(msoFileDialogSaveAs) 
    With fd 
     notCancel = .Show 
     If notCancel Then 
      .Execute 
     End If 
    End With 
End Sub