aktuell geöffneten Bericht als PDF drucken

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

aktuell geöffneten Bericht als PDF drucken

Begonnen von S0nic83, Januar 30, 2017, 17:01:41

⏪ vorheriges - nächstes ⏩

S0nic83

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.
  •  

Joss

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
  •  
    Folgende Mitglieder bedankten sich: S0nic83

datekk

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
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps
  •  

S0nic83

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.
  •  

datekk

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.

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps
  •  

S0nic83

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"
  •