window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Access-Berichte drucken per VBA

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Häufig unterschätzt man als Entwickler den Umfang von Daten, welche die Anwender der Datenbank zu Papier bringen möchten. Sollen diese Ausdrucke ansprechend gestaltet sein, so kommen Sie nicht umhin, dafür Berichte zu erstellen – der Ausdruck von Formularen sieht selten gut aus. Auch wenn Access über seine Oberfläche für den Druck alles mitbringt, stoßen Sie spätestens dann auf Probleme, wenn Sie auf die eingebauten Menüelemente verzichten und den Druck per VBA steuern wollen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1408_Drucken.mdb.

Drucken über Menüelemente

öffnen Sie einen Bericht in der Seitenansicht, so präsentiert Ihnen Access ab Version 2007 ein Ribbon wie in Bild 1.

Ribbon bei Seitenansicht eines Berichts in Access 2010

Bild 1: Ribbon bei Seitenansicht eines Berichts in Access 2010

In früheren Versionen zeigt Access eine zusätzliche Menüleiste wie in Bild 2 an. Beide enthalten ein Symbol für das Drucken des Berichts. Die Funktionen unterscheiden sich indessen voneinander.

Menüleiste bei Seitenansicht eines Berichts in Access 2003

Bild 2: Menüleiste bei Seitenansicht eines Berichts in Access 2003

Während sich nach Klick auf das Drucken-Symbol im Ribbon ein Dialog zur Auswahl des gewünschten Druckers und weiterer Einstellungen öffnet (siehe Bild 3), führt dieselbe Aktion unter Access 2003 und früher unweigerlich dazu, dass der Bericht sofort auf den im System vorgegebenen Standarddrucker ausgegeben wird, oder, soweit angegeben, auf den im Berichtsentwurf über Seite einrichten eingestellten.

Dialog für die Druckerauswahl

Bild 3: Dialog für die Druckerauswahl

Dabei ist es Access egal, ob dieser Drucker gerade offline ist oder etwa über das Netzwerk nicht erreichbar. Normal landet der Druckauftrag dann in der Druckerwarteschlange und wird kommentarlos ausgeführt, nachdem der Drucker online geschaltet wurde. Das jedoch bemerken Ihre Anwender unter Umständen nicht sofort und führen die Drucken-Aktion mehrmals durch. Besser wäre es, wenn Access hier eine entsprechende Mitteilung über den Status des Druckers machen würde.

Aber auch das Drucken über den Auswahldialog hindert Access nicht daran, einen nicht verfügbaren Drucker anzusprechen. Das Ergebnis sähe dann etwa aus, wie in Bild 5. Dennoch wird der Druckauftrag, je nach Druckereinrichtung, auch hier für gewöhnlich in die Warteschlange gestellt, was zu verspäteter Ausführung des Auftrags führt und die Anwender abermals verwirrt.

Systemeinstellungen für den Druckauftrag-Spooler von Windows

Bild 4: Systemeinstellungen für den Druckauftrag-Spooler von Windows

Sollte Ihren von merkwürdigem Druckverhalten Ihrer Datenbank berichtet werden, so lohnt sich übrigens zur Analyse ein Blick in die Ereignisanzeige von Windows. Dort werden nämlich fehlgeschlagene Druckvorgänge mit Angabe von Gründen protokolliert.

Das muss allerdings unter Windows auch korrekt eingestellt sein. Sie können das überprüfen, indem sie die Eigenschaften des Druckservers inspizieren (siehe Bild 4). Sie gelangen dorthin über den Ordner Drucker und dessen Menü Datei|Server-eigenschaften….

Fehlermeldung beim Versuch, zu drucken

Bild 5: Fehlermeldung beim Versuch, zu drucken

Ohne Administratorrechte haben Sie nur passiven Zugriff auf dessen Einstellungen. Ab Windows Vista können Sie die Häkchen für die Spooler-Einstellungen nur setzen, wenn Sie die Druckverwaltung über das Startmenü|Verwaltung öffnen. Gehen Sie dort über das Kontextmenü des lokalen Druckservers auf Eigenschaften…|Erweitert.

Praktisch also wäre, wenn Ihre Datenbank den Druck nur dann ausführt, wenn der Zieldrucker wirklich erreichbar ist, oder über einen Dialog nur eben diese Drucker anböte. Wie eine solche Lösung, realisiert über VBA, aussehen könnte, zeigen wir Ihnen später.

Abgesehen von den angesprochenen Umständen haben Sie ihre Datenbank möglicherweise aber ohnehin mit eigenen Menüleisten oder Ribbon-Definitionen versehen und möchten gar nicht, dass die eingebauten Elemente in der Seitenansicht auftauchen.

Neben den durchaus nützlichen Elementen zur Seiteneinrichtung – Format, Orientierung, Seitenränder — enthält das Ribbon auch noch weitere Symbole für den Export des Berichts nach Excel, Word und ähnliche.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar