Home > Artikel > Ausgabe 3/2012 > Bericht als PDF speichern

Bericht als PDF speichern

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Berichte sind eine komfortable und einfache Art, Daten aus den Tabellen einer Access-Datenbank für die Ausgabe auf Papier vorzubereiten. In der heutigen Zeit tendieren wir allerdings dazu, nicht mehr sämtliche Kommunikation auszudrucken, sondern verschicken das eine oder andere Dokument gleich per E-Mail – schneller geht es kaum. Ein Bericht lässt sich allerdings nicht so einfach per E-Mail verschicken: vorher müssen Sie ihn noch in einem Format auf der Festplatte speichern, das möglichst von allen Empfängern gelesen werden kann.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1203_BerichtZuPDF.mdb. Außerdem benötigen Sie die Dateien dynapdf.dll und StrStorage.dll.

Berichte speichern

Berichte sind wie Abfragen prinzipiell Anweisungen, wie Daten zu selektieren und auszugeben sind. Sie legen fest, welche Daten der Bericht anzeigen soll und bestimmen den Aufbau des Berichts und somit die Verteilung der Daten auf dem Bericht. Dies alles legen Sie im Entwurf von Berichten und Abfragen fest. Wenn Sie Berichte oder Abfragen öffnen, bilden diese den aktuellen Zustand der Daten entsprechend den im Berichts- oder Abfrageentwurf festgelegten Vorgaben ab.

Wenn Sie den Bericht schließen, einen der angezeigten Datensätze ändern oder löschen und den Bericht wieder öffnen, zeigt dieser die aktualisierte Fassung der Daten an. Damit gerät beispielsweise die Darstellung von Rechnungen per Bericht zu einem gefährlichen Spiel: Wenn Sie den Bericht einmal ausdrucken, sich dann bestimmte Werte wie biespielsweise die Rechnungsadresse ändern und die Rechnung erneut ausgedruckt werden soll, weil der Kunde seine Kopie verloren hat, erhält dieser nicht mehr die gleiche Rechnung wie zuvor.

Sie könnten dem zwar vorbeugen, indem Sie mit einem Rechnungsdatensatz sämtliche Kunden- und Rechnungsdaten speichern, aber es geht auch einfacher: Warum sichern Sie die Rechnung (neben der Kopie, die in Ihrem Rechnungsordner landet) nicht einfach als eigene Datei? Damit haben Sie nicht nur die Möglichkeit, jederzeit auf die Rechnung im Originalzustand zuzugreifen, sondern können diese auch bequem per E-Mail versenden. Wenn der Bericht einmal etwa als .pdf-Datei vorliegt, können Sie beispielsweise bei Rechnungen ein Feld in der entsprechenden Tabelle hinterlegen, um den Pfad und den Dateinamen zur Rechnungsdatei zu speichern und so später leicht von der Access-Anwendung aus auf die gespeicherte Rechnung zugreifen.

Versionsabhängige PDF-Erstellung

Je nach Access-Version gibt es unterschiedliche Ansätze, um aus einem Bericht eine PDF-Datei zu erstellen. Bis Access 2003 haben viele Access-Entwickler ein Tool von Stephen Lebans verwendet, das kostenlos ist und lediglich das Hinzufügen zweier DLLs im Anwendungsverzeichnis sowie einige Zeilen VBA-Code erfordert (www.lebans.com). Ab Access 2007 ist das Erstellen von PDFs mit Bordmitteln möglich (gegebenenfalls erst nach Installation von http://www.microsoft.com/downloads/de-de/details.aspx?displaylang=de&FamilyID=f1fc413c-6d89-4f15-991b-63b07ba5f2e5). In den folgenden Abschnitten lernen Sie beide Varianten kennen.

PDF-Export mit Access 2003 und älter

Unter Access 2003 und älter gibt es keine eingebaute Möglichkeit, einen Bericht in ein PDF-Dokument zu konvertieren. Glücklicherweise hat sich ein Access-Entwickler gefunden, der eine solche Funktion kostenlos zur Verfügung stellte: Stephen Lebans. Seine Funktion basiert auf dem Einsatz zweier DLL-Dateien, die sich im gleichen Verzeichnis wie die Datenbank (oder auch im Standard-Verzeichnis für Systemdateien) befinden sollten, und einem Standardmodul mit einigen wenigen Funktionen.

Die DLLs heißen StrStorage.dll und dynapdf.dll und kommen in verschiedenen Versionen vor. In unseren Tests zeigt sich, dass die aktuellste auf www.lebans.com verfügbare Version nicht mit Windows 7 zusammenarbeitet (Access stürzte komplett ab).

Mit einer älteren Version, die Sie auch im Download zu diesem Artikel finden, gelingt der Export nach PDF jedoch ohne Probleme. Das Modul mdlReportToPDF wurde von uns geringfügig modifiziert und unterscheide sich daher von der Version, die Sie in der Beispieldatenbank von Stephen Lebans finden.

Um die folgende Lösung einzusetzen, kopieren Sie also optimalerweise die beiden DLLs in das Verzeichnis Ihrer Anwendung und fügen dieser das Modul mdlReportToPDF aus unserer Beispieldatenbank hinzu.

Mit Access 2000 wurde mit dem Snapshot-Format (.snp) ein Export-Format für Berichte eingeführt. Der Konvertierungsalgorithmus basiert auf dem Ansatz, solch ein Snapshot zu erzeugen und diesen dann in eine PDF-Datei umzuwandeln.

Um dies zu erreichen, benötigen Sie prinzipiell nur einen einzigen Aufruf, der wie folgt aussieht:

ConvertReportToPDF "<Bericht>", , "<Dateiname>"

Für die Platzhalter und fügen Sie die gewünschten Werte ein, wobei der Dateiname mit Pfad angegeben werden muss.

Die Beispieldatenbank enthält einen Bericht namens rptArtikel und ein Formular namens frmBerichtZuPDF_2000_2003. Letzterer bietet zunächst eine Schaltfläche an, mit der Sie den genannten Bericht in das PDF-Format exportieren können (siehe Bild 1). Diese Schaltfläche löst die folgende Prozedur aus:

Formular zum Exportieren von Berichten im .pdf-Format

Bild 1: Formular zum Exportieren von Berichten im .pdf-Format

Private Sub cmdAlleDatensaetze_Click()

     ConvertReportToPDF "rptArtikel", , CurrentProject.Path & "\rptArtikel_2000_2003_Alle.pdf"

End Sub

Das Ergebnis überzeugt: Die PDF-Datei sieht genauso aus wie der Originalbericht (siehe Bild 2).

Mit Access 2000-2003 erzeugte PDF-Datei, basierende auf einem Access-Bereicht

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!