Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 3/2001.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Komfortabel drucken mit dem
AP-Druck-Manager

Autor: André Minhorst, Duisburg

Das Drucken der Objekte einer Datenbank - meist von Berichten - ist in der Regel kein Problem. Sie öffnen den Bericht und klicken auf die Drucken-Schaltfläche - schon passiert. Schwieriger wird es, wenn Sie unterschiedliche Berichte an verschiedene Drucker oder andere Ausgabegeräte schicken möchten, ohne ständig von Hand den Drucker zu wechseln. In dem Fall kommt der AP-Druck-Manager gerade recht: Er bietet einige Funktionen, mit denen das Ausdrucken von Berichten zur wahren Freude wird.

Wenn man einen Bericht mit einem anderen als dem Standard-Drucker ausgeben möchte, muss man den Dialog Drucken öffnen, den gewünschten Drucker auswählen und kann erst dann mit dem Drucken beginnen. Wie schön könnte das Leben sein, wenn man mit der einen Schaltfläche eine Adressenliste auf dem Tintenstrahldrucker ausgibt, mit der anderen Schaltfläche eine Rechnung per Fax verschickt und mit der dritten die eine Kopie der Rechnung per Acrobat Writer als PDF-Dokument speichert.

Im wahren Leben stecken hinter diesen Aufgaben Unmengen von API-Aufrufen und sonstigem Code, der nicht nur sehr umfangreich, sondern auch schwer zu erfassen ist.

Der AP-Druck-Manager

Der AP-Druck-Manager stellt entsprechende Funktionen zur Bestimmung des aktiven Druckers, zur Auswahl eines Druckers und zum Festlegen eines Druckers als aktiver Drucker zur Verfügung. Außerdem können Sie mit der Anwendung Berichte automatisch im PDF-Format abspeichern.

Die Anwendung kann vom Internetangebot www.access-paradies.de heruntergeladen werden. Sie finden aber auch eine Testversion der Software auf der Heft-CD.

Die Testversion dürfen Sie für private Zwecke kostenlos verwenden. Wenn Sie sie jedoch als Bestandteil einer Anwendung kommerziell vertreiben, müssen Sie eine Vollversion der Anwendung erwerben.

Installation des AP-Druck-Managers

Der AP-Druck-Manager ist eine eigene Datenbank, die Sie per Verweis in die gewünschte Datenbank einbinden müssen.

Voraussetzung für das erfolgreiche Einbinden ist, dass Sie die Datei AP-Druck-Manager97.mde bzw. AP-Druck-Manager2000.mde in das Verzeichnis kopieren, in dem sich auch die Datenbank befindet, mit der Sie die Funktionen verwenden möchten.

Gehen Sie dann folgendermaßen vor:

  • Öffnen Sie die Datenbank.
  • Aktivieren Sie mit der Tastenkombination [Strg][G] das Testfenster.
  • Öffnen Sie mit dem Menübefehl Extras( Verweise... den Dialog Verweise.
  • Klicken Sie auf die Schaltfläche Durchsuchen... und wählen Sie die Datenbank aus. Vergessen Sie nicht, den Dateityp auf MDE-Dateien einzustellen.
  • Nun sollte im Dialog Verweise der gewünschte Eintrag aktiviert sein (Abb. 1).

    Sie können nun auf die Funktionen des AP-Druck-Managers zugreifen.

    Funktionen des AP-Druck-Managers

    Im Folgenden finden Sie eine Erklärung der Funktionen des AP-Druck-Managers und deren Syntax.

    Ermitteln des aktiven Druckers

    Mit der Funktion AktivenDruckerErmitteln können Sie den Namen des aktiven Druckers ausgeben.

    Sie können den Befehl im Testfeld in folgender Form zur Ausgabe des entsprechenden Druckers verwenden:

    Debug.Print AktivenDruckerErmitteln

    Auflisten aller zur Verfügung stehenden Drucker

    Die Funktion AktiveDruckerListe dient zur Ermittlung aller installierter Drucker. Die Funktion sollte man in der Regel als Datensatzherkunft eines Kombinations- oder Listenfeldes verwenden. Dabei muss man die Eigenschaft Herkunftsart auf Wertliste einstellen.

    Sie können sie aber auch schnell im Testfenster ausprobieren:

    Debug.Print AktiveDruckerListe

    Aktivieren eines Druckers

    Der Funktion DruckerAktivSetzen dient zum Aktivieren eines anderen Druckers als neuen Standard-Drucker. Die Funktion liefert einen Wert zurück, der angibt, ob der Wechsel erfolgreich war.

    Achtung: Wenn Sie den Standard-Drucker wechseln, ist das ein systemweiter Eingriff. Sie sollten die Änderung beim Beenden der Anwendung wieder rückgängig machen.

    Dateiname eines PDF-Dokuments festlegen

    Die Funktion PDFDateiSetzen schreibt den als Parameter angegebenen Dateinamen in die ini-Datei des Acrobat PDFWriters. Das ist erforderlich, wenn Sie mit dem Acrobat PDFWriter ein PDF-Dokument erstellen möchten, ohne Sie mit dem dafür vorgesehenen Dialog den Dateinamen eingeben müssen.

    Beispiele für die Anwendung der Funktionen

    In den folgenden Abschnitten erstellen Sie ein Formular zur Verwendung der Funktionen des AP-Druck-Managers.

    Ein neues Formular erstellen

    Damit Sie genügend Beispielformulare haben, erstellen Sie das neue Formular am Besten in der Nordwind-Datenbank oder einer anderen Datenbank, die einige Beispielberichte enthält.

    Textfeld zur Ausgabe des Standard-Druckers hinzufügen

    Zunächst einmal erstellen Sie ein ungebundenes Textfeld zur Anzeige des aktuellen Standard-Druckers. Nennen Sie das Textfeld txtStandardDrucker.

    Setzen Sie die Eigenschaft Aktiviert auf den Wert Nein und die Eigenschaft Gesperrt auf den Wert Ja.

    Damit es auch den aktiven Drucker anzeigt, hinterlegen Sie für die Ereigniseigenschaft Beim Laden des Formulars die folgende Prozedur:

    Private Sub Form_Load()

        Me![txtAktiverDrucker] = _

            AktivenDruckerErmitteln()

    End Sub

    Kombinationsfeld zur Auswahl eines Druckers hinzufügen

    Anschließend fügen Sie dem Formular ein Kombinationsfeld zur Auswahl eines der verfügbaren Drucker hinzu. Nennen Sie das Kombinationsfeld cmbDruckerauswahl.

    Stellen Sie die Eigenschaft Herkunftstyp auf Feldliste ein. Um der Liste die entsprechenden Werte hinzuzufügen, können Sie die Funktion AktiveDruckerListe verwenden. Fügen Sie der Prozedur von eben die folgende Zeile hinzu:

    Me![cmbDruckerauswahl].RowSource = _

        AktiveDruckerListe()

    Wenn Sie das Formular nun in der Formularansicht betrachten, können Sie schon den Standard-Drucker sehen und die Liste aller verfügbaren Drucker auswählen (Abb. 2).

    Auswahl eines anderen Druckers

    Nun versehen Sie das Kombinationsfeld mit der entsprechenden Funktionalität, dass der ausgewählte Drucker nicht nur im Kombinationsfeld angezeigt wird, sondern auch tatsächlich als neuer Standard-Drucker aktiviert ist.

    Dazu hinterlegen Sie die Prozedur aus Quellcode 1 für die Ereigniseigenschaft Nach Aktualisierung des Kombinationsfeldes.

    Die Prozedur gibt eine entsprechende Meldung aus und aktualisiert das Textfeld txtAktiverDrucker.

    Berichte auswählen

    Damit Sie mit dem Formular auch noch den zu druckenden Bericht auswählen können, benötigen Sie ein weiteres Kombinationsfeld namens cmbBerichte. Geben Sie als Datensatzherkunft die folgende kleine SQL-Anweisung an:

    SELECT Name 

    FROM MSysObjects 

    WHERE Type=-32764;

    Die Abfrage ermittelt alle Einträge aus der Systemtabelle MSysObjects, deren Feld Type den Wert -32764 hat. Der Wert entspricht dem Objekttyp Bericht.

    Schaltfläche zum Drucken erstellen

    Nun benötigen Sie noch eine Schaltfläche zum Starten des Druckvorgangs. Nennen Sie die Schaltfläche btnDrucken und hinterlegen Sie die folgende Prozedur für die Ereigniseigenschaft Beim Klicken:

    Private Sub btnDrucken_Click()

        DoCmd.OpenReport Me![cmbBerichte], _

            acViewNormal

    End Sub

    Damit ist Ihr Formular zum Drucken eines ausgewählten Berichtes mit einem ausgewählten Drucker fertig.

    Drucken mit Acrobat PDFWriter

    Wenn Sie allerdings den Acrobat PDFWriter zum Drucken verwenden, müssen Sie lästigerweise noch den Dateinamen der zu speichernden Datei auswählen.

    Hier schafft die Funktion PDFDateiSetzen Abhilfe. Mit ihr schreiben Sie den gewünschten Dateinamen in die .ini-Datei, in der auch der Acrobat PDFWriter den Dateinamen zwischenspeichert. Nach dem Ausgeben der Datei löschen Sie den Dateinamen wieder.

    Legen Sie zunächst ein Textfeld namens txtDateiname zur Eingabe des Dateinamens an.

    Das Feld soll nur sichtbar sein, wenn das Textfeld txtAktiverDrucker als Drucker den Acrobat PDF-Writer anzeigt.

    Daher erweitern Sie die Prozedur aus Quellcode 1 um die folgenden Zeilen:

    If Me!txtAktiverDrucker = _

        "Acrobat PDFWriter" Then

        Me!txtDateiname.Visible = True        

    Else        

        Me!txtDateiname.Visible = False        

    End If

    Die gleichen Zeilen fügen Sie auch in die Prozedur ein, die beim Laden des Formulars aufgerufen wird. So gehen Sie sicher, dass direkt beim Anzeigen des Formulars das Textfeld txtDateiname je nach dem gewählten Standard-Drucker sichtbar oder nicht sichtbar ist.

    Schließlich bauen Sie noch die Funktion in die Prozedur ein, die Sie beim Klicken der Drucken-Schaltfläche aufrufen (Quellcode 2).

    Wenn Ihr Formular nun etwa wie in Abb. 3 aussieht und Sie alle Prozeduren richtig eingegeben haben, haben Sie nun ein praktisches Formular zur Ausgabe Ihrer Berichte auf das gewünschte Ausgabegerät.

    Abb. 3: Das fertige Formular zur flexiblen Ausgabe von Berichten

    Zusammenfassung und Ausblick

    Die hier vorgestellte Beispielanwendung enthält nur die notwendigsten Befehle. Beispielsweise ist hier keinerlei Fehlerabfrage enthalten.

    Die vier Funktionen des AP-Druck-Manager können über das Beispiel hinaus in vielen weiteren Fällen wertvolle Dienste leisten. Auf der Heft-CD finden Sie eine Beispieldatenbank mit ausführlicheren Beispielen.

    Denkbar für weitere Einsätze wäre beispielsweise, in der Menüleiste Befehle zum Ansteuern unterschiedlicher Drucker unterzubringen. Ihrer Fantasie sind hier keine Grenzen gesetzt.

    © 2003-2018 André Minhorst Alle Rechte vorbehalten.