window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Berichte zur Laufzeit filtern

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Die Datenquelle eines Berichts verhält sich gemeinhin statisch. Die Auswahl der Daten geschieht entweder im Vorfeld über die Filterung einer Abfrage oder über Gruppierungsebenen des Berichts. Mit der in Access 2007 eingeführten Berichtsansicht jedoch kommt mehr Leben ins Spiel. Diese erlaubt zur Laufzeit eine Modifikation der zugrundeliegenden Daten. Der folgende Beitrag zeigt zudem, wie Sie das Layout über Bedingte Formatierung von Textfeldern aufpeppen können.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1701_BerichtsFilter.accdb.

Die Berichtsansicht

Ein Bericht kommt üblicherweise für den gestalteten Ausdruck von Daten zur Anwendung. Wollten Sie dabei mehrere Auszüge der gleichen Daten mit unterschiedlichen Bedingungen ausdrucken, so war dies einst ein umständlicheres Unterfangen. Die Auswahl der Daten hatte etwa über eine Abfrage stattzufinden, in der Sie die Bedingungen über Parameter von außen steuerten. Hier könnten Sie VBA-Funktionen verwenden, die statt fest eingebauter Parameter variable Vergleichswerte liefern.

Bei der Berichtsansicht benötigen Sie derlei Kniffe nicht. Sie ermöglicht die dynamische Filterung der Datenquelle zur Laufzeit, ähnlich, wie bei einem Formular. Sie schalten die Berichtsansicht entweder über die entsprechende Ribbon-Schaltfläche ein, oder Sie setzen sie gleich im Entwurf des Berichts, indem Sie die Eigenschaft Standardansicht auf Berichtsansicht einstellen. Diese Ansicht ist, im Gegensatz zur Layoutansicht, immer verfügbar und muss in den Optionen der Datenbank nicht ausdrücklich erlaubt werden. Wohl aber existiert eine Eigenschaft Berichtsansicht zulassen unter dem Format-Reiter des Eigenschaftenblatts, die auf Ja stehen muss, damit der Bericht zur Laufzeit in diese umgeschaltet werden kann. Sonst stehen nur die Seitenansicht und gegebenenfalls die Layoutansicht zur Verfügung.

Tatsächlich verändert der Bericht in dieser Ansicht komplett sein Wesen und wird imgrunde zu einem Formular. Ein Fenster-Tool etwa zeigt, dass sich die verwendete Fensterklasse nun nicht mehr OReport nennt, sondern OForm, also identisch zur für Formularfenster verwendeten.

Für das Beispiel zu diesem Beitrag kommt eine Datenbank zum Einsatz, die bereits in der Ausgabe 5/2015, Daten ins Web exportieren, zur Demonstration von Web-Exporten diente. Das Datenmodell für jene Wettkampfdatenbank wird hier nicht nochmals erläutert. Das Beziehungsmodell mit seinen vier Tabellen ist in Bild 1 gezeigt. Es gibt Radwettkämpfe, Teilnehmer in verschiedenen Altersklassen und deren Wettkampfresultate.

Das Datenmodell der Beispieldatenbank zu fingierten Wettkampfdaten

Bild 1: Das Datenmodell der Beispieldatenbank zu fingierten Wettkampfdaten

Ziel der aktuellen Beispieldatenbank ist nun nicht ein Web-Export, sondern der Ausdruck der Resultate über einen Bericht. Diese sollen wahlweise nach Wettkampfkategorien und Altersklassen filterbar sein. Das damals dazu verwendete Formular ist in der Datenbank ebenfalls enthalten (frmErgebnisse), aber um eine Spalte erweitert, die die Durchschnittgeschwindigkeit visuell darstellt (siehe Bild 2). Dabei kommt für dieses Textfeld kein Grafiksteuerelement zum Einsatz, sondern ein Textfeld mit Bedingter Formatierung, dessen Einstellungen wir gleich noch eingehender beleuchten.

Das Formular frmErgebnisse zur Auswertung der Wettkampfresultate

Bild 2: Das Formular frmErgebnisse zur Auswertung der Wettkampfresultate

Die beiden Kombinationsfelder oben dienen der Filterung der Resultate, wobei wir hierfür kleine VBA-Ereignisprozeduren benutzen. Das Formular baut direkt auf der Abfrage qry_Resultate auf und kommt im Endlosmodus daher.

Mit Klick auf die Schaltfläche Berichtsversion… gelangen Sie zu einem anderen Formular, das jedoch einen Unterbericht einbaut hat, der die Ergebnisse im Prinzip analog darstellt, auch wenn sich die Farbgebung hier etwas unterscheidet. Dieses Formular (siehe Bild 3) und seinen Unterbericht sehen wir uns genauer an.

Hier haben wir es nicht mehr mit einem Formular in Endlosansicht zu tun, sondern mit einem Unterbericht im Modus Berichtsansicht (frmErgebnisseReport)

Bild 3: Hier haben wir es nicht mehr mit einem Formular in Endlosansicht zu tun, sondern mit einem Unterbericht im Modus Berichtsansicht (frmErgebnisseReport)

Das umrahmende Formular ist selbst an keine Datenquelle gebunden und steuert lediglich den Unterbericht. Eben dies ist eine Neuerung seit Access 2007. Früher konnte man einen Unterbericht nicht als Steuerelement in ein Formular integrieren, sondern nur wiederum in Berichte. Diese Möglichkeit ist allerdings nur auf Unterberichte beschränkt, die die Berichtsansicht als Standard eingestellt haben. Die Seitenansicht kann nicht in ein Formular eingebettet werden.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar