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.
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.
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.
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.
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….
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.
Es ist keine schlechte Idee, dem Anwender diese Funktionen vorzuenthalten, denn das Layout des Berichts unter Word oder Excel entspricht keinesfalls dem Original und führt regelmäßig zu Frustrationen.
Blenden Sie also das Ribbon oder die Menüleiste zur Seitenansicht besser aus und steuern das Drucken über eigene Oberflächenelemente, wie Buttons oder eigene Menüleisten, die VBA-Code auslösen, wie im Folgenden beschrieben.
Auch wenn Sie vom direkten Ausdruck von Formularen Abstand nehmen sollten – Datenblätter wären da eine Ausnahme -, sollen hier ein paar Anmerkungen dazu nicht fehlen. öffnen Sie etwa das Formular frmKunden in der Beispieldatenbank.
Unter Access 2003 finden Sie in der dann erscheinenden Menüleiste ein Symbol zum Drucken. Analog zum Bericht erfolgt bei Klick eine Ausgabe auf den Standarddrucker. Den Druckerauswahl-Dialog bekommen Sie nur, wenn Sie über das Hauptmenü Datei|Drucken… gehen.
Ab Access 2007 gibt es das Drucken-Symbol im Ribbon bei geöffnetem Formular jedoch nicht mehr. Drucken können Sie das Formular unter Access 2010 etwa nur über den länglichen Umweg Datei|Drucken.
Im Backstage-Bereich sehen Sie dann die Elemente in Bild 6. Erst, wenn Sie den Eintrag zur Seitenansicht anklicken, öffnet sich das Formular in eben dieser. Im Ribbon finden sich nun die gleichen Elemente, wie beim Bericht. Die Seitenansicht kann in der Formularansicht nicht direkt aufgerufen werden.
Bild 6: Verschiedene Druckoptionen
Der Auswahl-Button zur Ansicht lässt unverständlicherweise nur die Entscheidung über Formular- oder Entwurfsansicht zu.
Druckeinstellungen im Bericht
In allen Versionen von Access kann für einen Bericht eingestellt werden, auf welchen Drucker dieser ausgegeben werden soll und wie dabei das Format und die Seiteneinstellungen aussehen sollen. All dies kann auch über VBA erfolgen, wobei dies vor Access 2003 noch sehr umständlich zu bewerkstelligen war.
Ab Access 2003 ist das Objektmodell weitgehend konsistent geblieben und bietet nun über die Printers-Auflistung und das Printer-Objekt komfortablen Zugriff auf die Druckfunktionen.
Manuell nimmt man die Einstellungen vor, indem man den Bericht entweder im Entwurf oder in der Seitenansicht lädt. Unter Access 2003 muss im Entwurf der Einstellungsdialog über das Hauptmenü|Seite einrichten… aufgerufen werden, in der Seitenansicht über die entsprechende Menüschaltfläche der Menüleiste Seitenansicht.
Ab Access 2007 ist der Aufruf selbsterklärend. Der Dialog an sich sieht in allen Access-Versionen gleich aus (siehe Bild 7). Nachdem die Einrichtung vorgenommen wurde, muss der Bericht noch mit den neuen Angaben gespeichert werden, was ebenfalls in der Seitenansicht möglich ist und nicht nur im Entwurf.
Bild 7: Dialog für die Seiteneinrichtung
Neben den Einstellungen zu den Seitenrändern können Sie über den Reiter Seite das Ausgabeformat festlegen und außerdem dezidiert einen bestimmten Drucker angeben, auf den der Bericht standardmäßig gedruckt werden soll.
Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein: