Berichtsbereiche, Gruppierungen und Sortierungen

Berichte haben verschiedene Bereiche, in die Sie die anzuzeigenden Daten einordnen können. Dazu gehört natürlich der Detailbereich, der für jeden Datensatz der Datenherkunft einmal angezeigt wird, der Berichtskopf und der Berichtsfuß sowie der Seitenkopf und der Seitenfuß. Schließlich kommen noch die entsprechenden Kopf- und Fußbereiche eventuell eingerichteter Gruppierungen hinzu. Dieser Beitrag zeigt, was Sie mit den einzelnen Bereichen anstellen können.

Wenn Sie alles aus Berichten herausholen wollen, müssen Sie die einzelnen Bereiche eines Berichts kennen und wissen, welche Ereignisse zu welcher Phase des Renderns eines Bereichts ausgelöst werden.

Berichtsbereiche

Wenn Sie einen Bericht neu erstellen, zeigt dieser drei Bereiche an – den Seitenkopf, den Detailbereich und den Seitenfuß. Seitenkopf und Seitenfuß werden auf jeder Seite angezeigt, der Detailbereich für jeden darzustellenden Datensatz je einmal.

Wenn Sie Informationen nur am Anfang und am Ende eines Berichts anzeigen wollen, fügen Sie noch die Bereiche Berichtskopf und Berichtsfuß ein – und zwar über den entsprechenden Kontextmenü-Eintrag Berichtskopf/-fuß einer Bereichsüberschrift im Bericht.

Fehlen noch die Gruppierungen: Damit können Sie nach einzelnen Feldern der Datenherkunft eines Berichts gruppieren – also etwa eine Liste von Artikeln nach einer Kategorie. Das ist insbesondere interessant, da Sie für jede Gruppierung auch einen Gruppenkopf und einen Gruppenfuß anlegen können. Der Gruppenkopfbereich könnte etwa den Namen der Kategorie aufführen, der Gruppenfußbereich die Anzahl der in der Kategorie enthaltenen Artikel.

Gruppierungen

In neueren Access-Versionen ab Version 2007 finden Sie den Bereich zum Einrichten von Gruppierungen und Sortierungen unten im Access-Fenster. Mit den beiden Schaltflächen Gruppe hinzufügen und Sortierung hinzufügen fügen Sie Gruppierungen und Sortierungen hinzu. Eine Konstellation mit zwei Gruppierungen sieht etwa wie in Bild 1 aus.

Dialog zum Festlegen von Sortierungen und Gruppierungen

Bild 1: Dialog zum Festlegen von Sortierungen und Gruppierungen

Alternativ zum Betätigen einer der Schaltflächen und anschließendem Auswählen des Feldes, nach dem Sie gruppieren oder sortieren möchten, können Sie das gewünschte Feld in der Entwurfsansicht des Berichts auch direkt aus der Feldliste an die gewünschte Stelle der Gruppierungs- und Sortierungsoptionen ziehen.

Der Unterschied zwischen dem Hinzufügen einer Gruppierung oder Sortierung ist, dass bei der Gruppierung gleich ein Kopfbereich mit hinzugefügt wird. Dies können Sie aber wie in Bild 2 auch für eine Sortierung nachholen und diese so in eine Gruppierung umwandeln.

Festlegen der Bereiche einer Gruppierung

Bild 2: Festlegen der Bereiche einer Gruppierung

Der Beispielbericht sieht nun ohne Steuerelemente bereits wie in Bild 3 aus.

Berichtsbereiche inklusive einer Gruppierung

Bild 3: Berichtsbereiche inklusive einer Gruppierung

Die Einstellungen aus dieser Abbildung sorgen übrigens dafür, dass die zugrunde lie-gen-den Artikel zunächst nach Kategorien und dann innerhalb der Kategorien nach Lie-fe-ran-ten gruppiert werden. Die Daten jeder Lieferanten-Gruppe werden dann noch einer auf-steigenden Sortierung unterzogen.

Eigenschaften von Berichten und Berichtsbereichen

Berichte und die einzelnen Bereiche verwenden einige Eigenschaften, die wichtig für die Gestaltung des Berichts sind. Dummerweise sind die Eigenschaften nicht an einem Ort aufzufinden, sondern über das Eigenschaftsfenster und den soeben vorgestellten Bereich Gruppieren, Sortieren und Summe verteilt. Nachfolgend schauen wir uns diese Eigenschaften im Detail an.

Kopfzeilenbereich und Fußzeilenbereich

Diese beiden Eigenschaften finden Sie im Bereich Gruppieren, Sortieren und Summe. Sie legen damit für Gruppierungen fest, ob diese einen Kopf- und/oder einen Fußbereich anzeigen sollen. Sie können diese Eigenschaften unter VBA mit den Eigenschaften Group-Header und GroupFooter ansprechen. Die Eigenschaften gehören zum GroupLevel-Ob-jekt. Dieses können Sie mit einer Variablen des Typs GroupLevel referenzieren. Dieses GroupLevel-Objekt liefert noch mehr Eigenschaften als nur GroupHeader und GroupFooter zurück. Die folgende Ereignisprozedur legen Sie für die Ereigniseigenschaft Beim Laden des Berichts fest (s. Bild 4):

Erstellen einer Ereignisprozedur, die Bereichseigenschaften beim Laden des Berichts ausgibt

Bild 4: Erstellen einer Ereignisprozedur, die Bereichseigenschaften beim Laden des Berichts ausgibt

Private Sub Report_Load()
     Dim grp As GroupLevel
     Set grp = Me.GroupLevel(0)
     Debug.Print "GroupInterval: " & grp.GroupInterval
     Debug.Print "ControlSource: " & grp.ControlSource
     Debug.Print "GroupFooter: " & grp.GroupFooter
     Debug.Print "GroupHeader: " & grp.GroupHeader
     Debug.Print "GroupOn: " & grp.GroupOn
     Debug.Print "KeepTogether: " & grp.KeepTogether
     Debug.Print "SortOrder: " & grp.SortOrder
End Sub

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar