Neuigkeiten:

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

Mobiles Hauptmenü

Bericht automatisch als PDF speichern

Begonnen von Ramark, Januar 03, 2024, 19:49:29

⏪ vorheriges - nächstes ⏩

Ramark

Hallo zusammen,
ich habe zwar das Forum schon durchstöbert und auch die Beiträge zum Laufzeitfehler 2501 gelesen, aber ich komme trotzdem nicht weiter.
Ich habe ein Formular mit Unterformular, in dem ich mir die Daten für meinen Bericht zusammenstelle.
Dabei ist mein Feld "MG_Gebäude" ein Zahlenfeld.
Das klappt einwandfrei.
In dem Formular habe ich mir ein Schaltfeld eingerichtet mit dem der jeweilige Bericht ("rep_Wartung_SN__1_Q1") angezeigt und dann auch ausgedruckt werden kann. Das klappt auch einwandfrei.
Jetzt möchte ich aber, dass der Bericht über das Schaltfeld als PDF abgespeichert werden soll. Über den Befehl "Exportieren mit Formatierung" klappt das eigentlich ganz gut, aber ich muss halt immer wieder den Dateinamen unter dem der Bericht abgespeichert werden soll, neu angeben.
Der Dateiname sollte sich so zusammensetzen: Dateiname ="Q1_"&MG_Gebäude, also zum Beispiel "Q1_4711".

Aus dem Forum habe ich mir folgendes zusammengebastelt:
DoCmd.OutputTo acOutputReport, "rep_Wartung_SN_1_Q1", acFormatPDF, "C:\Pfad\Q1_" & Me.MG_Gebäude & ".pdf"

Blöderweise wird das immer mit dem Laufzeitfehler 2501 abgebrochen.
Meine Datenbank habe ich unter access 2010 aufgebaut.
Ich hoffe auf Erleuchtung!

PhilS

Zitat von: Ramark am Januar 03, 2024, 19:49:29Aus dem Forum habe ich mir folgendes zusammengebastelt:
DoCmd.OutputTo acOutputReport, "rep_Wartung_SN_1_Q1", acFormatPDF, "C:\Pfad\Q1_" & Me.MG_Gebäude & ".pdf"

Blöderweise wird das immer mit dem Laufzeitfehler 2501 abgebrochen.
Als erstes solltest du dir mal genau anschauen, was denn in dem Steuerelement Me.MG_Gebäude drinsteht, wenn es zu dem Fehler kommt.
Ist das, was dort steht, als Dateiname zulässig?

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Ramark

#2
Naja, das Steuerelement MG_Gebäude übernehme ich in meinem Formular aus einer Abfrage.
Das Feld selbst ist in einer Tabelle als Zahl im Format Long Integer definiert.
Wie gesagt, ich kann alle relevanten Felder aus dem Formular (incl. dem Feld MG_Gebäude) in meinen Bericht übergeben. Das wird da auch alles richtig angezeigt.
Ich hätte halt nur gern, dass der Bericht als PDF automatisch mit dem richtigen Dateinamen abgespeichert wird.

Kann es sein, dass ich irgendeinen grundlegenden Fehler mache?
Ich habe mir jetzt mal eine Schaltfläche angelegt und folgende Ereignisprozedur beim Anklicken angelegt:

Private Sub Befehl54_Click()
   DoCmd.OutputTo acOutputReport, "rep_Wartung_SN_1_Q1", acFormatPDF, "c:\tmp\test2.pdf"
End Sub

Jetzt bekomme ich die Fehlermeldung:
Laufzeitfehler 2501
Die Aktion OutputTo wurde abgebrochen

Ich komme nicht drauf, wo der Fehler ist.

MzKlMu

#3
Hallo,
bist Du sicher, dass Du auf C: Schreibrechte hast ?
Auch beim eigenen Rechner ist das keinesfalls sicher. Und auf einem Firmenrechner fast nie.
Ist das Verzeichnis "tmp" auf C: angelegt ?

PS:
Bitte verwende die Code Tags des Forums. Siehe Dein letzter Beitrag.
Gruß Klaus

Ramark

Der Hinweis auf das Verzeichnis war der entscheidende Tip: Angelegt hatte ich C:\Temp und in der Abfrage habe ich auf C:\tmp verwendet :-[
Schon doof, wenn man sonst überall den Hinweis bekommt, dass der angegebene Ordner nicht existiert, aber bei access das nicht statt findet.

Danke an alle für Ihre Unterstützung!