Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Bericht als PDF abspeichern funktioniert nach 4 Wochen nicht mehr.

Begonnen von Wolfgang18, Dezember 21, 2023, 13:36:04

⏪ vorheriges - nächstes ⏩

Wolfgang18

Hallo,
die letzten 4 Wochen konnte ich meine Service Berichte ,it nachfolgendem Code als PDF abspeichern.
Nun erhalte ich wieder den Laufzeitfehler '2501'
Die Aktion OutputTo wurde abgebrochen

Public Sub ReportToPDF()

DoCmd.OutputTo acOutputReport, "RP_ServiceBericht1", acFormatPDF, _
"c:\Test.PDF"

End Sub

Mein Access hat die Version 2311 Build 16.0.1.17029.20028 mit 64Bit
Ich habe die Version auf Updates geprüft und die Meldung erhalten, dass ich auf dem neusten Stand bin.
Ist ein Bug bekannt, der diesen Fehler verursachen kann.
Für jede Information wäre ich dankbar.
Gruß Wolfgang

PhilS

#1
Zitat von: Wolfgang18 am Dezember 21, 2023, 13:36:04die letzten 4 Wochen konnte ich meine Service Berichte ,it nachfolgendem Code als PDF abspeichern.

Nun erhalte ich wieder den Laufzeitfehler '2501'
Die Aktion OutputTo wurde abgebrochen
Hast du schon mal überprüft, ob du den Bericht normal in der Vorschau-Ansicht öffnen kannst?
Wenn ja, was passiert, wenn du ihn aus der Vorschau manuell als PDF in das gewünschte Zielverzeichnis exportierst?
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Wolfgang18

Als Vorschau lässt sich dr Bericht öffnen.
Wie kann ich den Bericht manuell als PDF in das Zielverzeichnis exportieren?

Köbi

Direkt in das Zielverzeichnis geht wohl nicht. Aber du kannst den Bericht als PDF öffnen und dann manuell in das Zielverzeichnis speichern.
Sie dürfen in diesem Board keine Dateianhänge sehen.

Köbi

Hier ein Code, wenn du den Bericht als PDF von einem Formular aus startest.
Private Sub cmdPDF_Click()   
    Dim reportName As String
    Dim FileName

    reportName = "RP_ServiceBericht1"
    FileName = "/" & reportName

    DoCmd.OpenReport reportName, acViewPreview, , , acHidden
    DoCmd.OutputTo acOutputReport, reportName, acFormatPDF, "c:\Test.PDF" & FileName & ".pdf", True
    'oder alternativ.....
    'DoCmd.OutputTo acOutputReport, reportName, acFormatPDF, CurrentProject.Path & FileName & ".pdf", True
        '##### Beachte die Bedeutung von True oder False am Schluss
    DoCmd.Close acReport, reportName, acSaveNo   
End Sub

Wolfgang18

Ich habe meinem Formular einen Schalter cmdPDF hinzugefügt und deinen Code hinterlegt.
Daraufhin erhalte ich wieder nachfolgende Fehlermeldung:
Sie dürfen in diesem Board keine Dateianhänge sehen.

PhilS

Zitat von: Wolfgang18 am Dezember 26, 2023, 13:45:41Daraufhin erhalte ich wieder nachfolgende Fehlermeldung:
Hast du inzwischen auch mal den Report manuell als PDF exportiert?
Die Vorschau alleine kann zwar Fehler aufzeigen, die direkt auftreten, aber nicht Fehler die erst bei der Aufbereitung der Daten auf einer Seite weit hinten in dem Report auftritt.

Außerdem ist dein Ausgabepfad C:\Test.PDF problematisch, weil normale Benutzer in das Wurzel-Verzeichnis des C-Laufwerks keine Schreibrechte haben.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Wolfgang18

Hallo PhilS,
ich hatte am 25.12.2023geschrieben, dass ich nicht weiß, wie ich einen geöffneten Bericht in Access als PDF in ein Zielverzeichnis exportiere.

Köbi

Zitat von: Wolfgang18 am Dezember 26, 2023, 16:45:09Hallo PhilS,
ich hatte am 25.12.2023geschrieben, dass ich nicht weiß, wie ich einen geöffneten Bericht in Access als PDF in ein Zielverzeichnis exportiere.
Ich glaube, dass ich dir den Weg in #3 gezeigt habe, wie man einen Report manuell als PDF exportiert.
Öffne einfach den Bericht und klicke auf das in meinem Beispiel rot umrandete Symbol.

Wolfgang18

Danke Köbi, nun habe ich das Bild verstanden.
Ich kann den Bericht nach pdf exportieren und auch in C.\ abspeichern.
Dies funktioniert ohne Fehlermeldung.

Köbi

Existiert denn überhaupt das Verzeichnis c:\Test.PDF? Oder heisst es vielleicht c:\Test\PDF?

Wolfgang18

Ich habe ein Verzeichnis C:\Test in dass ich die Datei abspeichere.
Mit dem Umweg manuell exportieren als PDF konnte ich den Bericht in diesem Verzeichnis speichern.
Damit sind nach meiner Ansicht alle Voraussetzungen gegeben und ich verstehe nicht, wieso dies über den vba Befehl nicht funktioniert.

Köbi

Hallo
Du schreibst am Anfang schon von einem Verzeichnis "c:\Test.PDF". Jetzt erzählst du plötzlich von einem Verzeichnis "C:\Test". Das ist halt schon ein Unterschied.
Ich schlage vor, du änderst in meinem Code die Zeile
DoCmd.OutputTo acOutputReport, reportName, acFormatPDF, "c:\Test.PDF" & FileName & ".pdf", Truein
DoCmd.OutputTo acOutputReport, reportName, acFormatPDF, "c:\Test" & FileName & ".pdf", True
Dann sollte es funktionieren.

Wolfgang18

Hallo Köbi,
danke für den Hinweis.
Das Problem lag in der falschen Pfadangabe in der Programmzeile.
Nachdem ich dies korrigiert habe funktioniert es korrekt.

Köbi

Na, dann ist ja jetzt alles gut.
Obwohl es einfacher gegangen wäre, wenn du in deinem ursprünglichen Code das richtige Zielverzeichnis verwendet hättest, also jenes, welches existiert "C:\Test"
Die Frage hier im Forum wäre dann gar nicht nötig gewesen.

Zitat von: PhilS am Dezember 26, 2023, 14:03:08Außerdem ist dein Ausgabepfad C:\Test.PDF problematisch, weil normale Benutzer in das Wurzel-Verzeichnis des C-Laufwerks keine Schreibrechte haben.
Da kann ich Phil nur zustimmen. Im Verzeichnis C:\ sollte man nicht arbeiten, sondern ein Verzeichnis D:\ dafür verwenden.