Verteiler für Berichte

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.

Export per Kontextmenü

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).

Frisch exportierter Bericht

Bild 2: Frisch exportierter Bericht

Funktion 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.

Das Formular zum Auswählen der Berichte, die in einem Verteiler landen und von dort exportiert werden sollen

Bild 3: Das Formular zum Auswählen der Berichte, die in einem Verteiler landen und von dort exportiert werden sollen

Das 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.

Die exportierten Berichte zu einem Verteiler

Bild 4: Die exportierten Berichte zu einem Verteiler

Datenmodell

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.

Datenmodell der Lösung

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.

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]