Hallo,
ich möchte in einem Formular mithilfe eines Kombinationsfeldes die Hintergrundfarbe eines Textfeldes ändern.
Das ganze soll eine Ausschussabschreibung für Werkstücke werden, in der die Werkstücktypen Farben zugewiesen haben. Diese Farbwerte sind als RGB vorgegeben.
Die Datensatzherkunft des Kombifeldes ist eine Tabelle mit 4 Spalten und Enthält den Werkstücktyp in Spalte 1 und die Farbwerte als RGB (jeweils eine Spalte für rot, grün und blau).
Nun soll bei der Typauswahl mittels Kombifeld ein Ungebundenes Textfeld im Formular formatiert werden. Die Hintergrundfarbe des Textfeldes soll sich aus den RGB-Werten der Typen-Tabelle zusammensetzen.
Wie mache ich das mit VBA? Eine bedingte Formatierung scheidet aus, da auf dem Rechner der Ausschusserfassung nur die Access-Runtime läuft und somit die Datenbank nicht umprogrammiert werden kann.
Grüße
Stefan
Hi,
die Begründung die deiner Ansicht nach gegen die bedingte Formatierung spricht, müsstest du nochmal ausführlicher erklären.
Was willst du denn mit VBA-Code lösen, wenn du die DB nicht "umprogrammieren" kannst?
Für die Zuweisung der Hintergrundfarbe kannst du die RGB-Funktion einsetzen. Was genau ist deine Frage dazu?
Hallo,
es gibt natürlich noch ein weiteres Formular, mit dem ich die Typen ändern bzw. neue Typen hinzufügen kann (je nach Vorgabe). Sollte sich eine Farbe ändern, dann soll das einfach mittels ändern der Typen-Tabelle geschehen. Sonst müßte ich im Formular die Bedingte Formatierung ändern. Das geht ja mit der Runtime nicht. Und in der Bedingten Formatierung kann ich zwar Farben festlegen, aber ich kann nicht sagen, dass die Herkunft der Farbwerte aus der Tabelle zu entnehmen sind.
Ich hatte so etwas schon mal programmiert, aber leider vergessen, wie ich das gemacht habe. Die alte DB ist einen Datenverlust zum Opfer gefallen.
Grüße
StefanV3
Eine konkrete Frage vermisse ich immer noch, aber vielleicht hilft das Beispiel dir auf die Sprünge:
Private Sub cboFarben_AfterUpdate()
If Not IsNull(Me.cboFarben) Then
Me.textfeld_x.BackColor = RGB(cboFarben.Column(1), cboFarben.Column(2), cboFarben.Column(3))
End If
End Sub