VBA Tipp: Aktuellen Datensatz im Endlosformular farblich markieren

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte den aktuellen (angeklickten) Datensatz farblich markieren, um ihn dadurch optisch hervorzuheben.

Lösung

Das geht mit Hilfe der "Bedingten Formatierung".


1. Setze die Hintergrundart aller Steuerelemente im Detailbereich auf Transparent

2. Erstelle ein ungebundenes Textfeld im Detailbereich

  • mit gleicher Breite wie die Breite des Detailbereichs
  • mit gleicher Höhe wie die Höhe der Steuerelemente des Detailbereichs
  • Setze die Eigenschaft Gesperrt auf Ja und Aktiviert auf Nein
  • Setze die Hintergrundfarbe auf die Hintergrundfarbe des Detailbereichs
  • Lege es hinter die Steuerelemente des Detailbereichs (Anordnen - In den Hintergrund)

3. Weise dem Textfeld eine "Bedingte Formatierung" zu,

  • entweder manuell:
Ausdruck ist     [MeinIDFeld]=[AktuelleID]
und wähle die gewünschte Hintergrundfarbe aus
  • oder per Code Beim Öffnen des Formulars.
    (Text0 ist in diesem Beispiel der Name des ungebundenen Textfeldes im Detailbereich.
    MeinIDFeld ist der Name deines ID-Feldes, das einen Datensatz eindeutig identifiziert.)
Private Sub Form_Open(Cancel As Integer)
 Me!Text0.FormatConditions.Add acExpression, , "MeinIDFeld = AktuelleID"
 Me!Text0.FormatConditions(0).BackColor = vbMagenta
End Sub


4. Erstelle ein weiteres unsichtbares, ungebundenes Textfeld im Formularkopf und gib ihm den Namen AktuelleID

5. Setze folgenden Code in das Formular-Ereignis Beim Anzeigen
Private Sub Form_Current()
 Me!AktuelleID = Me!MeinIDFeld
End Sub


Wiki-Links

Web-Links

http://access.mvps.org/access/forms/frm0047.htm Changing the Background Color of the Current Record in a Continuous Form