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.
Verteiler für Berichte
Wer sich die Berichte seiner Access-Datenbank nicht in der Datenbank selbst ansehen, sondern anderen Personen präsentieren will, kommt nicht um einen Export herum. Dieser findet heutzutage in der Regel im PDF-Format statt. Einen einzelnen Bericht mal eben zu exportieren ist auch schnell erledigt. Anders sieht es aus, wenn immer mal wieder bestimmte Zusammenstellungen von Berichten exportiert werden sollen – einmal für das Controlling, einmal für den Chef et cetera. Dann kommt Ihnen die kleine Lösung aus diesem Beitrag zuhilfe, mit der Sie Verteiler für Berichte zusammenstellen und die Berichte per Mausklick in das gewünschte Verzeichnis exportieren.
Einfacher Export
Der übliche Weg zum Exportieren ist beispielsweise, im Navigationsfenster den zu exportierenden Bericht zu markieren und dann auf die rechte Maustaste zu klicken, um das Kontextmenü anzuzeigen. Daraus wählen Sie dann den Eintrag Exportieren|PDF oder XPS aus (s. Bild 1). Im folgenden Datei auswählen-Dialog legen Sie dann die Zieldatei für den Export im PDF- oder XPS-Format fest. Einen Mausklick später öffnet Access bereits die so angelegte Datei.
Bild 1: Export per KontextmenüExport per VBA
Per VBA exportieren Sie einen Bericht am einfachsten mit der OutputTo-Methode des DoCmd-Objekts. Dieses erwartet die folgenden Parameter:
- ObjectType: Typ des Objekts, in diesem Fall acOutputReport für einen Bericht
- ObjectName: Name des Objekts, wie er im Datenbankfenster angegeben ist
- OutputFormat: Format des Exports, für unsere Anwendung acFormatPDF
- OutputFile: Pfad der zu erstellenden Datei
- Autostart: Gibt an, ob die Datei direkt in der entsprechenden Anwendung (hier meist Acrobat Reader) geöffnet werden soll. True öffnet das Dokument, bei False geschieht nichts (Standardwert).
Ein Beispiel für einen einfachen Aufruf sieht wie folgt aus:
DoCmd.OutputTo acOutputReport, "rptArtikel", acFormatPDF, "c:ExportArtikel.pdf", True
Dies erstellt das Dokument Artikel.pdf auf Basis des Berichts rptArtikel und öffnet dieses direkt (s. Bild 2).
Bild 2: Frisch exportierter BerichtFunktion der Lösung
Unsere kleine Lösung soll ein Formular anbieten, mit dem Sie verschiedene Verteilerlisten verwalten können. Jeder Verteilerliste können Sie dabei einen oder mehrere der Berichte, die in der aktuellen Datenbank vorhanden sind, zuweisen. Ein Klick auf eine Schaltfläche soll dann alle Berichte für den aktuell angezeigten Verteiler in das PDF-Format exportieren. Das Formular sieht wie in Bild 3 aus. Es zeigt im oberen Bereich die Daten des aktuellen Verteilers an, der sich vor allem durch eine Bezeichnung und einen Export-Pfad auszeichnet. Den Pfad können Sie mit einem Verzeichnis auswählen-Dialog ermitteln, den Sie mit einem Klick auf die Schaltfläche rechts vom entsprechenden Textfeld öffnen.
Bild 3: Das Formular zum Auswählen der Berichte, die in einem Verteiler landen und von dort exportiert werden sollenDas Unterformular zeigt alle Berichte an, die aktuell zum Verteiler gehören. Hier werden der Berichtsname sowie der Dateiname angezeigt, unter dem die PDF-Datei erzeugt werden soll. Die Schaltfläche Exportieren schließlich sorgt für den Export der Berichte dieses Verteilers. Im Falle des hier abgebildeten Verteilers ergibt sich ein Ergebnis wie in Bild 4.
Bild 4: Die exportierten Berichte zu einem VerteilerDatenmodell
Das Formular zeigt die Daten aus insgesamt drei Tabellen an, die Sie samt ihrer Beziehungen in Bild 5 sehen. Die Tabelle tblVerteiler enthält neben dem Primärschlüsselfeld die beiden Felder Bezeichnung und Zielverzeichnis. Die Berichte speichern wir in der Tabelle tblBerichte, die im Feld Bericht den Namen des Berichts und in Dateiname den Namen der zu erstellenden Datei aufnimmt. Das Feld Vorhanden dient als Unterstützung beim Aktualisieren der Berichte, falls seit der letzten Verwendung des Formulars neue Berichte hinzugefügt oder alte entfernt wurden. Für das Feld Bericht legen wir einen eindeutigen Index fest, damit jeder Bericht nur einmal in der Tabelle auftauchen kann.
Bild 5: Datenmodell der Lösung
Die Tabelle tblVerteilerBerichte verknüpft die beiden Tabellen per m:n-Beziehung. Dazu enthält sie neben dem Primärschlüsselfeld je ein Fremdschlüsselfeld zu den beiden übrigen Tabellen. Hier ist wichtig, dass für die beiden Felder VerteilerID und BerichtID ein eindeutiger, zusammengesetzter Index festgelegt wird – so verhindern wir, dass ein Bericht mehr als einmal zu einem Verteiler hinzugefügt wird. Die beiden Verknüpfungsfelder sind als Nachschlagefelder definiert.
Erstellen des Formulars
Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.