Hallo Gemeinde,
ich glaube ich sehe den Wald vor Lauter Bäumen nicht: In meiner Hardewareverwaltung(Access-DB) möchte ich die Schriftfarbe in allen Formularen auf Grau ändern, in Abhängigkeit zum Wert im KomboFeld Regalfach.
Steht dort Zurückgeliefert, soll der Text aller Textfelder, Komboboxen, etc. des jeweiligen Forumlares grau sein. Dazu habe ich eine Sub geschrieben, die auch wenn sie aufgerufen wird, z.B. durch Buttonklick, funktioniert.
Wie kann ich aber nun die Public Sub, die ich testweise im Formular Artikelerfassung erstellt habe für alle Formulare zur Anwendung bringen?
Mein erster Versuch war die Sub in ein Modul auszulagern und dann als als Formload-Ereignis aufzurufen.
Leider gibt es dabei aber den Fehler, dass die Sub aufgerufen wird, bevor das aufgerufene Formular tatsächlich geladen wurde und die Sub findet dann natürlich das Steuerelement Regalfach noch nicht...
Auch die Versuche "beim Anzeigen", "Bei Fokuserhalt" gehen nicht...
ich glaube ich sehe den Wald vor Lauter Bäumen nicht: In meiner Hardewareverwaltung(Access-DB) möchte ich die Schriftfarbe in allen Formularen auf Grau ändern, in Abhängigkeit zum Wert im KomboFeld Regalfach.
Steht dort Zurückgeliefert, soll der Text aller Textfelder, Komboboxen, etc. des jeweiligen Forumlares grau sein. Dazu habe ich eine Sub geschrieben, die auch wenn sie aufgerufen wird, z.B. durch Buttonklick, funktioniert.
Wie kann ich aber nun die Public Sub, die ich testweise im Formular Artikelerfassung erstellt habe für alle Formulare zur Anwendung bringen?
Mein erster Versuch war die Sub in ein Modul auszulagern und dann als als Formload-Ereignis aufzurufen.
Leider gibt es dabei aber den Fehler, dass die Sub aufgerufen wird, bevor das aufgerufene Formular tatsächlich geladen wurde und die Sub findet dann natürlich das Steuerelement Regalfach noch nicht...
Auch die Versuche "beim Anzeigen", "Bei Fokuserhalt" gehen nicht...
Visual Basic-Quellcode
- Public Sub BedingteFormatierung()
- Dim frm As Form
- Dim ctl As control
- Dim frmCurrentForm As Form
- Set frm = Screen.ActiveForm
- Dim objFormatCondition As FormatCondition
- Debug.Print frm.Regalfach
- If frm.Regalfach = "Zurückgeliefert" Then
- For Each ctl In frm.Controls
- Select Case ctl.ControlType
- Case acTextBox, acComboBox
- frm(ctl.name).ForeColor = RGB(191, 191, 191)
- End Select
- Next ctl
- Else
- For Each ctl In frm.Controls
- Select Case ctl.ControlType
- Case acTextBox, acComboBox
- Text = ctl.name
- frm(ctl.name).ForeColor = RGB(0, 0, 0)
- End Select
- Next ctl
- End If
- End Sub