Hintergrundfarbe von Eingabefeldern Σndern
Sie wollen in einem Formular die Hintergrundfarbe eines Textfeldes wechseln. Jeweils das Feld soll die Farbe Σndern, fⁿr das Access 97 gerade eine Eingabe erwartet. Nach dem Verlassen des Feldes soll Access die Standardfarbe wiederherstellen.
Access identifiziert die verschiedenen Farben durch einen numerischen Ausdruck des Datentyps ╗long½. Zuerst mⁿssen Sie die Nummern der Farben, die Sie verwenden wollen, herausfinden.
╓ffnen Sie die Entwurfansicht eines Formulars. Klicken Sie mit der rechten Maustaste auf ein beliebiges Textfeld und rufen Sie den Kontextbefehl ╗Eigenschaften | Format½ auf. Im Feld ╗Hintergrundfarbe½ k÷nnen Sie die Nummer der aktuellen Hintergrundfarbe ablesen. Um die Nummern der anderen Farben zu ermitteln, klicken Sie neben der Eigenschaft auf die SchaltflΣche ╗...½. WΣhlen Sie eine neue Farbe und klicken Sie auf ╗OK½. Jetzt ist die Hintergrundfarbe mit der neuen Nummer belegt.
Ermitteln Sie auf die gleiche Weise die Nummern der Hintergrundfarben von Feldern mit und ohne Fokus. Achten Sie darauf, die ursprⁿngliche Belegung fⁿr ein Feld ohne Fokus anschlie▀end wiederherzustellen. In unserem Beispiel ist ╗16711808½ die Nummer der normalen Hintergrundfarbe, ╗65280½ geh÷rt zu einem aktivierten Textfeld.
Im nΣchsten Schritt mⁿssen Sie den Ereignissen ╗Bei Fokuserhalt½ und ╗Bei Fokusverlust½ fⁿr jedes Textfeld eine Ereignisprozedur hinterlegen: ╓ffnen Sie das Kontextmenⁿ der Textfelder und klicken Sie neben den Eigenschaften auf die SchaltflΣche ╗...½. WΣhlen Sie nun im Dialog ╗Generator auswΣhlen½ den Eintrag ╗Code-Generator½ und bestΣtigen Sie mit ╗OK½. Die Namen der Ereignisprozeduren setzen sich zusammen aus dem Namen des Textfeldes und den Zeichen ╗_GotFocus½ oder ╗_LostFocus½.
Innerhalb dieser Prozeduren definieren Sie mit einem VBA-Befehl die aktuelle Hintergrundfarbe. Fⁿr das Textfeld ╗Text1½ sehen die entsprechenden Prozeduren in unserem Beispiel wie folgt aus:
Private Sub Text1_GotFocus()
Me![Text1].BackColor = activateColor
End Sub
Private Sub Text1_LostFocus()
Me![Text1].BackColor = normalColor
End Sub
Das Beispiel geht davon aus, dass Sie die zuvor ermittelten numerischen Werte am Anfang des Moduls als Konstanten ╗normalColor½ und ╗activateColor½ definieren. Gehen Sie dazu an den Anfang des Moduls und fⁿgen Sie hinter ╗Option Compare Database½ und ╗Option Explicit½ die folgenden Zeilen ein:
Const normalColor As Long = 16711808
Const activateColor As Long = 65280
Eine Beispieldatei û jeweils fⁿr Access 97 und 2000 û finden Sie auf der Heft-CD CHIP-Code FARBMDB.
|