Aufgrund eines Fehlers können Sie mit der ersten Version von Access 2007 keinen Spezialdrucker für Berichte nutzen, da diese Einstellung dort nicht dauerhaft gespeichert wird und die Einstellung immer wieder auf „Standarddrucker“ zurückgesetzt wird. Diesen Bug hat Microsoft zwar mit dem Service Pack 1 (SP1) für Office 2007 repariert, aber damit ein neues Problem geschaffen: Die mit Access 2007/SP1 erstellten Datenbanken können mit Access 2007 ohne Service Pack nicht geöffnet werden.
Um unter Access 2007 ohne SP1 trotzdem einen Spezialdrucker nutzen zu können, müssen Sie für die Ausgabe des Berichtes per VBA vorübergehend den Standarddrucker von Access auf den benötigten Spezialdrucker umstellen. Dazu gehen Sie folgendermaßen vor:
- Öffnen Sie den betreffenden Bericht in der Entwurfsansicht.
- Stellen Sie die Eigenschaft „Beim Öffnen“ auf den Eintrag „[Ereignisprozedur]“ ein.
- Stellen Sie die Eigenschaft „Beim Schließen“ auf den Eintrag „[Ereignisprozedur]“ ein und klicken Sie auf die Schaltfläche mit den drei Punkten, um in den VBA-Editor zu wechseln.
- Wechseln Sie anschließend in den allgemeinen Teil des Berichtmoduls. Geben Sie folgende Deklaration ein:Dim prtStandard As Printer
- Aktivieren Sie nun die Ereignisprozedur „Report_Open“.
Geben Sie dann die folgenden Anweisungen ein:Private Sub Report_Open (Cancel As Integer)
Dim prtSpezial As Printer
Const cstrSpezialdrucker = „HP 2020 LaserJet XXL“
Set prtStandard = Application.Printer
Set prtSpezial = Printers(cstrSpezialdrucker)
Set Application.Printer = prtSpezial
End Sub
Für die Zuweisung bei der Konstanten „cstrSpezialdrucker“ geben Sie den exakten Namen des Spezialdruckers an, auf dem die Ausgabe erfolgen soll. Diesen Namen bringen Sie in Erfahrung, indem Sie im Office-Menü auf DRUCKEN-DRUCKEN klicken und den Namen in der Liste NAME ablesen. - Aktivieren Sie die Ereignisprozedur „Report_Close“ und geben Sie folgende Anweisungen ein:Private Sub Report_Close()
Set Application.Printer = prtStandard
End Sub - Speichern Sie die Änderungen und verlassen Sie die VBA-Entwicklungsumgebung wieder.
In Zukunft kann der Bericht nun trotz Bug einfach nach Öffnen per Doppelklick auf dem Spezialdrucker ausgedruckt werden.