Bericht per PDF und Mail verschicken

Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.

Bericht per PDF und Mail verschicken

Es fragen immer wieder Leser an, ob wir nicht einmal beschreiben können, wie man einen Bericht als PDF-Dokument speichert und diesen dann per E-Mail verschickt. Kein Problem: Wir schauen uns erst die einzelnen Grundtechniken an und gehen dann dazu über, Lösungen für Spezialfälle zu entwickeln.

Bericht als PDF speichern

Während wir in früheren Access-Versionen noch eine externe Software benötigten, um PDF-Dokumente auf Basis von Access-Berichten zu erstellen, liefert Access nun zum Glück ein Export-Format für diese Anforderung mit. Also ist ja alles in Butter – wir müssen nur noch herausfinden, wie wir den Bericht per Knopfdruck im PDF-Format speichern.

Beispielbericht

Dazu benötigen wir erstmal einen passenden Bericht. Wir wollen allerdings nicht mit einem einfachen Bericht beginnen, der einfach per Doppelklick auf den Berichtsnamen im Navigationsbereich aufgerufen werden kann, sondern mit etwas Anspruchsvollerem. Was könnte das sein? Natürlich ein Bericht, dem wir beim Öffnen per WhereCondition ein Kriterium übergeben, nach dem die anzuzeigenden Daten ausgegeben werden. Dies ist nämlich üblicherweise der Fall – es gibt wohl nur selten Berichte, die alle Datensätze der zugeordneten Datenherkunft ausgeben. Die meisten Berichte liefern gefilterte Daten, beispielsweise in einer Rechnung, die nur die Daten zu einer bestimmten Bestellung enthalten soll.

Unser Beispielbericht ist so aufgebaut, dass Sie mit ihm alle Datensätze der Tabelle tblBestellungen ausgeben können oder auch nur eine einzige Rechnung. Er ist wie in Bild 1 aufgebaut und enthält beispielsweise einen Seitenkopf, der nur für die Folgeseiten der ersten Seite der jeweiligen Rechnung ausgegeben werden soll. Dazu enthält der Bericht ein paar Ereignisprozeduren, auf deren Bedeutung wir weiter unten zu sprechen kommen (den vollständigen Bericht stellen wir im Beitrag Rechnungsbericht vor – siehe www.access-im-unternehmen.de/1044).

Dialog zum Festlegen von Sortierungen und Gruppierungen

Bild 1: Dialog zum Festlegen von Sortierungen und Gruppierungen

Bericht öffnen

Wenn Sie diesen Bericht einfach über den Navigationsbereich öffnen, zeigt er alle Rechnungen zu den Datensätzen der Tabelle tblBestellungen an (immerhin einige hundert). Das ist natürlich nicht das Ziel – wir wollen am Ende genau einen Bericht öffnen, in ein PDF-Dokument speichern und dann per E-Mail verschicken.

Dazu bauen wir ein kleines Formular auf, das in der Entwurfsansicht wie in Bild 2 aussieht. Wenn wir nun auf eine der Schaltflächen klicken, soll immer genau die Rechnung für die aktuell angezeigte Bestellung ausgegeben werden.

Formular zum Anzeigen einer Bestellung und zum Ausgeben von Rechnungen

Bild 2: Formular zum Anzeigen einer Bestellung und zum Ausgeben von Rechnungen

Wenn wir die Schaltfläche cmdBerichtAnzeigen anklicken, soll der Bericht einfach nur in der Seitenansicht geöffnet werden. Dazu verwenden wir eine Ereignisprozedur, die den Bericht mit der Methode DoCmd.OpenReport öffnet und dabei mit dem Parameter WhereCondition den Ausdruck "BestellungID = " & Me!BestellungID übergibt. Dies gelingt auch, wie Bild 3 zeigt: Der Bericht enthält lediglich eine Seite mit den im Formular zu dieser Bestellung angezeigten Rechnungspositionen. Die Ereignisprozedur sieht wie folgt aus:

Formularansicht zum Anzeigen einer Bestellung und zum Ausgeben von Rechnungen

Bild 3: Formularansicht zum Anzeigen einer Bestellung und zum Ausgeben von Rechnungen

Private Sub cmdBerichtAnzeigen_Click()
     DoCmd.OpenReport "rptRechnungen", View:=acViewPreview, _
        WhereCondition:="BestellungID = " & Me!BestellungID
End Sub

Soweit, so gut: Aber wir wollen ja nicht die Berichtsvorschau, sondern ein PDF-Dokument mit dem gleichen Inhalt. Bei geöffnetem Bericht kommen wir relativ einfach dorthin: Wir müssen nur die Drucken-Schaltfläche des Ribbons betätigen und im nun erscheinenden Drucken-Dialog den Eintrag Microsoft Print To PDF auswählen (s. Bild 4). Nach einem Klick auf OK erscheint ein Dateiauswahl-Dialog, mit dem Sie festlegen, unter welchem Dateinamen die PDF-Datei gespeichert werden soll. Danach können Sie die PDF-Datei öffnen, die wie in Bild 5 aussieht.

Drucken-Dialog mit dem Microsoft-eigenen PDF-Treiber

Bild 4: Drucken-Dialog mit dem Microsoft-eigenen PDF-Treiber

Ein Bericht im PDF-Format

Bild 5: Ein Bericht im PDF-Format

PDF per VBA erstellen

Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.

Bitte geben Sie die Zahlenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Aktuell im Blog
Onlinebanking mit Access

Es ist geschafft: Endlich ist das Buch Onlinebanking mit Access fertiggeschrieben. Das war... [mehr]

Direktzugriff auf Tabellen und Felder

Die IntelliSense-Erweiterung für Tabellen und Felder hat mir soviel Spaß gemacht, dass ich gleich... [mehr]

IntelliSense für Tabellen und Felder

Wenn Sie mit dem VBA-Editor arbeiten und dort gelegentlich SQL-Anweisungen eingeben, müssen Sie... [mehr]

Download Access und SQL Server

Erfahren Sie, welche Schritte zum Download des aktuellen Stands des Buchs "Access und SQL Server"... [mehr]

Bilder in Access 2013

Wer die Bibliothek mdlOGL0710 von Sascha Trowitzsch oder ein ähnliches Modul aus meinen... [mehr]

Dynamische Ribbons

Immer wieder fragen Leser, wie man Ribbon-Elemente wie etwa Schaltflächen in Abhängigkeit... [mehr]

Die Blogmaschine

Einen kleinen Blog zusätzlich zum Shop zu betreiben ist eine tolle Sache. Hier lassen sich... [mehr]

Wegwerfadressen für die Newsletteranmeldung

Die Verwendung von Wegwerf-Adressen für die Nutzung aller möglichen Online-Dienste nimmt... [mehr]

Access und Facebook

Facebook und Access - das ist eine der wenigen Kombinationen, die ich noch nicht in die Mangel... [mehr]

Access und SQL Server - das Projekt

Mein neues Buch Access und SQL Server (gemeinsam mit Bernd Jungbluth) geht in die Endphase. Wer... [mehr]