Von Microsoft ist man Benutzerunfreundlichkeit gewohnt, und so verhält es sich auch mit der bedingten Formatierung (Conditional Formatting) von Reporten in Microsoft Access: Der Wert eines Feldes kann mit den GUI-Tools nur auf drei Stati gleichzeitig geprüft werden.
Zum Glück kann man auf VBA ausweichen. Hierzu öffnet man die Design View des Reports, wählt die Sektion „Detail“ mit Klick auf dessen Balken aus, wechselt im Eigenschaftsfeld auf Events und erstellt dort für das Ereignis „On Format“ eine VBA-Prozedur mit dem Code Builder.
Dort kann man als geübter Entwickler dann mit dem Select Case-Konstrukt arbeiten:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) Dim sStatus As Variant 'To account for null values sWert = Me!Wert Select Case sWert Case "Yes" ' Grün cColor = RGB(0, 255, 0) Case "In most cases" ' Gelb cColor = RGB(255, 255, 0) Case "In almost half the cases" ' Orange cColor = RGB(255, 215, 0) Case "In a few cases" ' Fuchsia cColor = RGB(255, 0, 255) Case "No" ' Rot cColor = RGB(255, 0, 0) Case "Not applicable", "N/A" cColor = RGB(192, 192, 192) Case Else cColor = RGB(255, 255, 255) End Select Debug.Print "Setting Color to " & cColor & " based on " & sWert Me!Wert.BackColor = cColor End Sub
Ein Nachteil hat das ganze aber: Die Hintergrundfarbe wird nur in der Druckvorschau angezeigt. Auch das wieder: Typisch Microsoft. Unbrauchbare Software aus dem letzten Jahrhundert.