Wie kann ich in einem MSAccess-Formular mit fortlaufenden Formularen durch Zeilengruppierung alternative Zeilenfarben erhalten?

620
Mike M

Wenn ich fortlaufende Formulare in einem MSAccess-Formular verwende, wendet es automatisch auf jede andere Zeile eine alternative Zeilenfarbe an.
Ich hätte gerne die alternative Zeilenfarbe für Gruppen von Datenzeilen.
Einige Gruppen haben möglicherweise nur eine Reihe, andere wiederum haben mehr als eine.
Ich habe eine Spalte im Formular mit einer ganzen Zahl, die für jede Gruppe inkrementiert.

Gibt es eine Möglichkeit, Zugriff zu erhalten, um die Gruppierung im Formular zu erkennen und dann anstelle von nur jeder anderen Zeile alternative Zeilenfarbe anzuwenden?

1

1 Antwort auf die Frage

1
Mike M

Access hat keine Möglichkeit, die Gruppierung in Formularen in der Benutzeroberfläche zu erkennen. (tut es in Berichten)

Es gibt jedoch ein Ereignis des Detailabschnitts, das einen geeigneten Haken für die Formatierung bietet, auch ohne die Benutzeroberfläche "Gruppieren".

Da es für die Gruppen einen ganzzahligen Index gibt und wir nach Gruppen wechseln möchten, ist es einfach, nach geraden / ungeraden Gruppen zu suchen und die Hintergrundfarben festzulegen.
Wir müssen sowohl "Backcolor" als auch "AlternateBackColor" erzwingen. Vorausgesetzt, der Gruppenindex befindet sich in einem Textfeld mit dem Namen IndexColumnBox, kann es wie folgt aussehen:

Private Sub Detail_Paint()  If Me.IndexColumnBox.Value Mod 2 = 0 Then Detail.BackColor = &HDDDDDD Detail.AlternateBackColor = &HDDDDDD  Else Detail.BackColor = &HFFFFFF Detail.AlternateBackColor = &HFFFFFF  End If  End Sub 

(Beachten Sie, dass es sich bei dem Ereignis nicht um ein einmaliges Generieren der fortlaufenden Formulare handelt. Dieses Ereignis wird also für jede Zeile beliebig oft aufgerufen, wenn das Formular gescrollt und verwendet wird. Dies bedeutet, dass die Indexspalte so ähnlich ist Überprüfen Sie, ob das immer gleich ist.)

Wenn jemand eine bessere Veranstaltung als Detail_Paint finden kann, kann es interessant sein. Es verursacht Nebenwirkungen, wenn sich die Gruppierungen ändern, wie in meinem Fall, wenn dies ein Unterformular ist und ich Datensätze im übergeordneten Element ändere. Mike M vor 6 Jahren 0