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 Zeichenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Neues aus unseren Magazinen
Listenfeld: Reihenfolge mehrerer Einträge...

Wir haben bereits in mehreren Beiträgen beschrieben, wie Sie die individuelle Reihenfolge von Elementen einer Tabelle über den Inhalt eines Feldes etwa namens »ReihenfolgeID« einstellen können –... [mehr]

Diagramme mit gefilterten Daten

In Ausgabe 2/2019 haben wir in zwei Artikeln die modernen Diagramme von Access vorgestellt. Im vorliegenen Beitrag zeigen wir Ihnen, wie Sie diese abhängig von den in einem Formular angezeigten... [mehr]

Benutzerverwaltung mit verschlüsselten...

Wenn Sie in einer Access-Anwendung Benutzer verwalten wollen, die sich per Benutzername und Kennwort an die Anwendung anmelden, sollten Sie sehr sensibel mit den in der Anwendung gespeicherten... [mehr]

HTML-Tabellen mit fester Kopfzeile

In den vorherigen Ausgaben von Access im Unternehmen und in der aktuellen Ausgabe arbeiten wir in einigen Beiträgen mit dem Webbrowser-Steuerelement und stellen Daten, die wir mit den Bordmitteln... [mehr]

Flexible HTML-Tabellen mit fester Kopfzeile

Im Beitrag »HTML-Tabellen mit fester Kopfzeile« haben wir gezeigt, wie Sie Daten aus einer bestimmten Abfrage in einem Webbrowser-Steuerelement so anzeigen, dass die Spaltenköpfe oben fixiert... [mehr]

Berechtigungen per HTML verwalten

Im Beitrag »Benutzerverwaltung mit verschlüsselten Kennwörtern« stellen wir eine Lösung vor, in der wir die Berechtigungen von Benutzergruppen an Datenbankobjekten definieren. Dort benötigen wir... [mehr]

Benutzer und Berechtigungen ermitteln

In den Beiträgen »Benutzerverwaltung mit verschlüsselten Kennwörtern« und »Berechtigungen per HTML verwalten« haben wir die Voraussetzungen für eine Benutzerverwaltung geschaffen. Im vorliegenden... [mehr]

Zugriffsrechte mit Datenmakros

Es gibt verschiedene Möglichkeiten, auf Basis des aktuell angemeldeten Benutzers sicherzustellen, dass dieser nur die für ihn vorgesehenen Aktionen mit Daten durchführen darf – beispielsweise durch... [mehr]

Kennwörter generieren

Für den einen oder anderen Zweck möchten Sie vielleicht Kennwörter generieren oder in einer Benutzeroberfläche die Möglichkeit zum Generieren von Kennwörtern anbieten. Wenn Sie etwa Benutzer zu... [mehr]

Neuer Datensatz von Frontend zu Backend

Für manche Themen gibt es keine kurze, prägnante Überschrift. In diesem Fall wollen wir zeigen, wie Sie einen neuen Datensatz anlegen, der in einer temporären Tabelle im Frontend gespeichert wird,... [mehr]