Zum Inhalt dieser Seite

4.4 Jede zweite Zeile grau

Nun gibt es auch schon eine unter FAQ 5.3 vorgestellte Lösung. Aber diese funktioniert leider nicht immer ganz sauber. Speziell bei Unterberichten, in denen der erste Datensatz auf jeden Fall grau erscheinen soll, unabhängig davon, ob der letzte Datensatz des zuvor formatierten Unterberichts ebenfalls grau war, bietet sich eine andere Vorgehensweise an.

Zunächst legt man im zu formatierenden Detailbereich eine laufende Nummer nach FAQ 5.16 an. Dieses Textfeld - nennen wir es lfdNr - muß nicht unbedingt angezeigt werden (die Eigenschaft "Sichtbar" kann also auf "Nein" stehen), sondern dient nur dazu, die Nummer des Datensatzes auszuwerten. Bei ungerader Datensatznummer (1,3,5 ...) wird der Detailbereich durch folgende Prozedur beim Ereignis "Beim Formatieren" 4.3 grau, bei gerader Datensatzzahl (2,4,6 ...) dagegen weiß:

Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
 
If Me!lfdNr Mod 2 = 1 Then
  'Datensatznummer geteilt durch 2 ergibt Rest von 1
  Me.Section(acDetail).BackColor = 12632256    'grau
 Else
  'Datensatznummer ist ohne Rest durch 2 teilbar
  Me.Section(acDetail).BackColor = 16777215    'weiß
End If
 
End Sub
 

Nachtrag: Mittlerweile ist auch diese Vorgehensweise als Tipp unter FAQ 5.3 zu finden.

Home