Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: mbdi am November 24, 2025, 12:28:36

Titel: Bedingte Formartierung im Kombifeld
Beitrag von: mbdi am November 24, 2025, 12:28:36
Moin

Ich suche mir leider einen Wolf und finde nichts passendes  :(
Folgendes. Ich habe ein Kombinationsfeld "cbo_Service" Gefüllt mit Werten aus einer Tabelle.
Wenn ich nun eine Auswahl treffe, möchte ich, das das Kombifeld je nach Auswahl farbig hinterlegt wird.

z.B. Auswahl "In Bearbeitung" dann gelb hinterlegt.
Wenn ich die Auswahl in ein extra Feld übergebe, funktioniert das. Wenn ich aber nur das Kombinationsfeld habe nicht.

Ich nutze Access für Office 365
Titel: Re: Bedingte Formartierung im Kombifeld
Beitrag von: Knobbi38 am November 24, 2025, 13:08:42
Dann dürfte deine Bedingung bzw. der Ausdruck nicht stimmen. Du musst schon das richtige Feld prüfen.

Knobbi38
Titel: Re: Bedingte Formartierung im Kombifeld
Beitrag von: Debus am November 24, 2025, 14:22:43
Hey, versuch mal das hier:

Private Sub cbo_Service_AfterUpdate()
    Select Case Me.cbo_Service.Value
        Case "Offen"
            Me.cbo_Service.BackColor = RGB(255, 200, 200) ' Hellrot
        Case "Erledigt"
            Me.cbo_Service.BackColor = RGB(200, 255, 200) ' Hellgrün
        Case "In Bearbeitung"
            Me.cbo_Service.BackColor = RGB(200, 200, 255) ' Hellblau
        Case Else
            Me.cbo_Service.BackColor = RGB(255, 255, 255) ' Weiß (Standard)
    End Select
End Sub

Sollte gehen

Holger
Titel: Re: Bedingte Formartierung im Kombifeld
Beitrag von: Beaker s.a. am November 24, 2025, 18:39:36
Hallo,

Mir fällt zwar im Moment auch nichts Besseres ein, aber sehr generisch
ist das nicht,- Code ändern zu müssen, wenn ein Service dazu kommt.

Oder doch. Wenn du den Farbcode in der Tabelle in jedem DS hinterlegst,
kannst du die Farbe After-Update zuweisen
Me.DeinKombi.BackColour = Me.DeinKombi.Column(SpalteN) SpalteN = SpaltenNummer des Farbfeldes (Basis 0)

gruss ekkehard
Titel: Re: Bedingte Formartierung im Kombifeld
Beitrag von: Knobbi38 am November 24, 2025, 19:18:35
Hier ist der Einsatz von VBA-Code nicht erforderlich, da eine Kombobox FCs unterstützt. Man muss allerdings für die Bedingung das richtige Feld bzw. Spalte auswählen.

Knobbi38
Titel: Re: Bedingte Formartierung im Kombifeld
Beitrag von: Bitsqueezer am November 25, 2025, 09:18:18
Hallo,

außerdem muß man beachten, daß der CF-Editor von Access bisweilen sehr zickig ist. Man hat etwas eingegeben und gespeichert, und wenn man dann wieder den CF-Editor öffnet, hat Access aus einem Feldnamen einen String gemacht. Automatismen sind nicht immer ein Segen...

AfterUpdate würde auch nicht genügen, weil dann eine Farbänderung nur nach Änderung des Feldes eintritt. Rufst Du den Datensatz wieder auf, bleibt der Hintergrund, wie er gerade ist.

In einem Endlosformular ginge das ohnehin nicht. Also: CF ist der richtige Weg und die Kombobox kann das.
Beachte, daß der Wert der Wert der gebundenen Spalte sein muß. Wenn Deine Kombobox also aus ID und Text besteht, kannst Du nicht in der CF-Formel den Text abfragen, Du mußt dann den ID-Wert angeben.

Am einfachsten ist es zu testen, wenn Du die Formel, die Du für CF verwendest, mit in die Abfrage einbaust, dann siehst Du gleich, welche Zeile welches Ergebnis ergibt.

Bei komplexen Formeln ist das ohnehin eine gute Idee, denn dann kannst Du die CF-Formel stark vereinfachen, indem Du nach dem Ergebnis dieser zusätzlichen Spalte fragst. Die Abfrage berechnet das bedeutend schneller und die CF-Formel kann einfach auf True/False testen. Das beschleunigt auch die CF-Anzeige in einem Endlosformular.

Gruß

Christian

Titel: Re: Bedingte Formartierung im Kombifeld
Beitrag von: Frank200 am November 25, 2025, 11:44:03
Zitat von: Bitsqueezer am Heute um 09:18:18hat Access aus einem Feldnamen einen String gemacht
Das kann man vermeiden, indem jeder Feldname im Ausdruck in eckigen Klammern geschrieben wird. Unabhängig davon, ob dieser Sonderzeichen oder Leerzeichen enthält.
Das Gleiche gilt für Controlnamen.
Titel: Re: Bedingte Formartierung im Kombifeld
Beitrag von: Bitsqueezer am November 25, 2025, 12:47:12
Hallo Frank,

das ist richtig, nur vergißt man das bei der Eingabe schon mal und wundert sich dann, wenn es nicht funktioniert, obwohl man glaubt, alles richtig eingegeben zu haben.

Gruß

Christian