SCHWERPUNKT

Berichte per VBA bändigen

Gruppierung nach einem Textfeld

Wenn Sie etwa nach einem Textfeld gruppieren, kann die Eigenschaft GroupOn die Werte 0 (gruppiert nach dem kompletten Feldwert) oder 1 (gruppiert nach den ersten x Zeichen) annehmen, wobei x dem Wert der Eigenschaft Group-Interval entspricht. Wenn Sie also die Artikel-Tabelle der Nordwind-Datenbank so gruppieren möchten, dass alle Artikel mit dem gleichen Anfangsbuchstaben gruppiert und der Anfangsbuchstabe im Gruppenkopf angezeigt werden soll, realisieren Sie das unter VBA mit der Ereignisprozedur aus Listing 2.

Private Sub Report_Open(Cancel As Integer)
'Erste Gruppierungsebene referenzieren
With Me.GroupLevel(0)
'Zu gruppierendes Feld festlegen
.ControlSource = "Artikelname"
'Gruppieren nach einer bestimmten Anzahl von Zeichen...
.GroupOn = 1
'...die hier festgelegt wird:
.GroupInterval = 1
'Gruppenkopf und Detailbereich sollen zusammengehalten werden.
.KeepTogether = 2
End With
End Sub

Bild 3: Entwurf eines Berichts zur Ausgabe eines Artikel-Katalogs.
Bild 3: Entwurf eines Berichts zur Ausgabe eines Artikel-Katalogs.
Bild 4: Bericht mit alphabetischer Artikelliste.
Bild 4: Bericht mit alphabetischer Artikelliste.

Der zugrunde liegende Bericht sieht im Entwurf wie in Bild 3 aus. Das Ergebnis können Sie in Bild 4 betrachten.