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.
