Hallo,
ich hab hier eine Accessdatenbank, die ein umfangreiches Interface zur Auftragsbearbeitung hat.
Die verschiedenen Berichte werden vor dem Öffnen über einen Makro gefiltert geöffnet. (Auf den Makro hab ich irgendwie keinen Zugriff. Ich finde keine Makros in der Access-datei).
Jetzt müsste ich den aktuell angezeigten Bericht als PDF ablegen. Wenn ich nun versuche in der Load oder Unload -prozedur den Befehl "DoCmd.OutputTo acOutputReport, , acFormatPDF, "c:\ablage\content.pdf" auszuführen, bekomme ich die Meldung "Dieser Befehl kann nicht ausgeführt werden, so lange das Objekt bearbeitet wird".
Ich hab die letzten Tage viel zum Thema gelesen, aber die Beispiele beziehen sich alle darauf, dass der Export im Aufruf durchgeführt wird und leider entscheidet der Makro welchen Bericht er aufruft, ich müsste dann also von hier aus eine ähnliche routine schreiben, um herauszufinden, welcher Bericht benötigt wird. Deshalb habe ich gehoft ich könnte alle berichte mit dem entsprechenden Befehl ausrüsten.
Gibt es eine möglichkeit den jeweis aktuellen Bericht so wie er angezeit wird zu drucken ?
Schonmal vielen Dank für eure Hilfe.
Hallo S0nic83,
ZitatWenn ich nun versuche in der Load oder Unload -prozedur den Befehl "DoCmd.OutputTo acOutputReport, , acFormatPDF, "c:\ablage\content.pdf" auszuführen,
nimm mal das Report_Activate-Ereignis.
Gruß
Josef
Welche Version von Access benutzt Du? Vollversion oder Runtime? In der Vollversion zumindest ab 2013 reicht ein Rechtsklick auf das Berichtsfenster - also oben auf den Fensterrahmen. Dann auf Seitenansicht. Dann nochmal einen Rechtsklick auf den Bericht - diesmal aber nicht auf den Rahmen sonder mitten rein ;) .. Und dann auf "Exportieren.."
Bei der Runtime geht das aber nicht, und mit Versionen < 2013 kenn ich mich nicht aus..
Aber vielleicht hilft Dir das schon weiter..
LG
datekk
Zitat von: datekk am Januar 31, 2017, 17:27:41
Welche Version von Access benutzt Du? Vollversion oder Runtime? In der Vollversion zumindest ab 2013 reicht ein Rechtsklick auf das Berichtsfenster - also oben auf den Fensterrahmen. Dann auf Seitenansicht. Dann nochmal einen Rechtsklick auf den Bericht - diesmal aber nicht auf den Rahmen sonder mitten rein ;) .. Und dann auf "Exportieren.."
Bei der Runtime geht das aber nicht, und mit Versionen < 2013 kenn ich mich nicht aus..
Ja danke, die Exportfunktion kenne ich. und die geht auch mit den 2008er Versionen schon. Ich nutze hier 2010. auf anderen Rechnern läuft denke ich 2008. Das könnte evtl. auch noch zum Problem werden.
Sinn und Zweck meiner Aktion ist es im Hintergrund eine Auftragsakte anzulegen. Dort sollen alle erstellten Schriftstücke abgelegt werden, um auch Änderungen nachvollziehen zu können.
Zitatnimm mal das Report_Activate-Ereignis.
Das hat mir schonmal sehr geholfen. Jetzt versucht er die Anweisung wenigstens auszuführen.
Jetzt bekomme ich die Meldung, dass der Objekttyp acOutputReport nicht angegeben oder falsch ist.
Aber da werd ich mich erstmal einlesen, bevor ich euch weiter Quäle. Erstmal danke soweit.
Ich sag bescheid, obs entgültig geklappt hat. Danach stell ich auf gelöst.
Versuchen kannst Du noch, den Bericht von einem anderen Ort aus zu speichern. Z.B. über eine Schaltfläche in einem Formular. Hier öffnest Du den Bericht erst und speicherst ihn dann mit dem OutputTo Befehl. Das öffnen kann auch versteckt erfolgen, falls er nicht angezeigt werden soll. Das sollte problemlos funktionieren.
Danke Danke für eure Hilfe. Es funktioniert jetzt. Ich habe zwar keine Ahnung warum, aber es Funktioniert.
und zwar habe ich beim Objekttyyp nun nicht mehr den string acOutputReport sondern den Zahlenwert 3 übergeben.
Laut Debugger hatte zwar der angegebene Objekttyp den wert 3 enthalten, aber irgendwie hats nicht geklappt.
mein befehl sieht jetzt so aus
DoCmd.OutputTo 3, , acFormatPDF, "c:\Kundendienstarchiv\test.pdf" |