| |
|
Aktive Eingabefelder farblich hervorheben |
| Kurzinfo: |
 |
Dieser Tipp zeigt, wie man innerhalb eines
Formulars das aktive Feld andersfarbig darstellen kann.
Hintergrund ist der, dass der Anwender dadurch sofort
sieht, in welchem Feld sich der Cursor befindet. |
| Access-Version(en): |
|
Access 97, 2000 und XP |
| Autor: |
 |
Günther Kramer |
| Homepage: |
 |
http://www.access-paradies.de |
| |
 |
Download
ca. 55 KB |
|
| | | | 
|
Auf der AP-Access-Tools Vol.1 finden Sie weitere 320
Tipps & Tricks sowie 250 Access-Beispiel/Anwendungen mit offenen Quellcode!
Die Access-Tools-CD mit über 400 MByte Inhalt - für Access- und VB-Entwickler
256 Access-Beispiele mit offenem Code
45 Add-Ins und ActiveX-Komponenten (Freeware)
16 VB-Projekt inkl. Source
321 Tipps & Tricks für Access und VB
Plus 11 Entwicklerversionen (9 davon mit Source!)
Plus 3 Vollversionen und
Plus riesiger Datenpool
Holen Sie sich jetzt Ihre AP-Access-Tools-CD zum Superpreis von nur EUR 24,95! | | | | |
|
Erstellen Sie ein neues Modul und fügen Sie den folgenden
Code ein:
Public Feldfarbe As Long
Public Textfarbe As Long
Public Kontrollkaestchenfarbe As Long
Public Kontrollbezfeld As String
Private Const conAktivesKontrollfeldFarbe = 8388608
Private Const conAktivesTextfeldFarbe = 8454143
Public Function aktives_Eingabefeld(Status As Boolean)
On Error GoTo Err_aktives_Eingabefeld
Dim Steuerelement1 As Control
Set Steuerelement1 = Screen.ActiveControl
If Status Then
Feldfarbe = Steuerelement1.BackColor
Textfarbe = Steuerelement1.ForeColor
Steuerelement1.ForeColor = 0
Steuerelement1.BackColor = conAktivesTextfeldFarbe
Else
Steuerelement1.ForeColor = Textfarbe
Steuerelement1.BackColor = Feldfarbe
End If
Exit_aktives_Eingabefeld:
Exit Function
Err_aktives_Eingabefeld:
Select Case Err
Case 0
Resume Next
Case Else
Resume Exit_aktives_Eingabefeld
End Select
Resume 0
End Function
Public Function aktive_Schaltfläche(Status As Boolean)
On Error GoTo Err_aktive_Schaltfläche
Dim Steuerelement1 As Control
Set Steuerelement1 = Screen.ActiveForm.ActiveControl
If Status Then
Kontrollkaestchenfarbe = Steuerelement1.ForeColor
Steuerelement1.ForeColor = conAktivesKontrollfeldFarbe
Else
Steuerelement1.ForeColor = Kontrollkaestchenfarbe
End If
Exit_aktive_Schaltfläche:
Exit Function
Err_aktive_Schaltfläche:
Select Case Err
Case 0
Resume Next
Case Else
Resume Exit_aktive_Schaltfläche
End Select
Resume 0
End Function
Public Function aktives_Kontrollkästchen(Status As Boolean)
On Error GoTo Err_aktives_Kontrollkästchen
Dim Steuerelement1 As Control
Kontrollbezfeld = Screen.ActiveForm.ActiveControl.Name & "_Text"
Set Steuerelement1 = Screen.ActiveForm(Kontrollbezfeld)
If Status Then
Kontrollkaestchenfarbe = Steuerelement1.ForeColor
Steuerelement1.ForeColor = conAktivesKontrollfeldFarbe
Else
Steuerelement1.ForeColor = Kontrollkaestchenfarbe
End If
Exit_aktives_Kontrollkästchen:
Exit Function
Err_aktives_Kontrollkästchen:
Select Case Err
Case 0
Resume Next
Case Else
Resume Exit_aktives_Kontrollkästchen
End Select
Resume 0
End Function
Speichern Sie das Modul und öffnen Sie ein beliebiges Formular,
in welches Sie die "aktive Eingabefelder“-Funktion einfügen
möchten.
Generell müssen Sie für alle Felder, die hervorgehoben werden sollen,
einen Funktionsaufruf einfügen. Klicken Sie dazu das gewünschte
Feld an und öffnen Sie dazu das Eigenschaftenfenster (Menü Ansicht
- Eigenschaften). Fügen Sie bei den Ereignissen „Beim Hingehen“
und „Beim Verlassen“ den jeweiligen Funktionsaufruf ein.
Für Textfelder, Kombinationsfelder
und Listenfelder lautet der Aufruf =aktives_Eingabefeld(Wahr)
bzw. =aktives_Eingabefeld(Falsch).

Bei Optionsgruppen markieren Sie bitte die Gruppe und nicht
ein Optionsfeld und fügen =aktives_Kontrollkästchen(Wahr)
bzw. =aktives_Kontrollkästchen(Falsch) ein. Da nur die Überschrift
der Gruppe hervorgehoben werden kann, muss der Feldname wie folgt
zusammengesetzt sein:
Name_der_Optionsgruppe & _ & Text
Hat die Optionsgruppe den Namen Rahmen so muss der Feldname
für die Überschrift Rahmen_Text lauten. Sobald die Funktion
aufgerufen wird, wird der Name des aktiven Feldes ermittelt und
dann nach einem Bezeichnungsfeld gesucht, welches den zusammengesetzten
Namen hat. Der Text in diesem Bezeichnungsfeld wird nun in der angegebenen
Farbe angezeigt.

Möchten Sie ein Kontrollkästchen hervorheben, ist
der Formularentwurf ähnlich wie bei einer Optionsgruppe. Der Name
für das Bezeichnungsfeld des Kontrollkästchen wird auf die selbe
Art zusammengesetzt wie zuvor beschrieben. Lautet der Name des Kontrollkästchens
z.B. Geburtstagskarte muss der Name des Bezeichnungsfeldes
Geburtstagskarte_Text lauten.

Damit beim Laden des Formulars bereits das erste Feld richtig hervorgehoben
wird, muss in Formular noch ein Codeaufruf eingefügt werden.
Markieren Sie in der Entwurfsansicht des Formulars das Objekt Formular,
wählen das Ereignis Beim Laden aus und klicken
Sie in das Feld und im Anschluss auf die kleine Schaltfläche
mit dem Pfeil. Wählen Sie hier den Text [Ereignisprozedur]
aus und klicken Sie auf die zweite kleine Schaltfläche mit
den drei Punkten.

Nun öffnet sich die VBA-Code-Ansicht mit der Prozedur Private
Sub Form_Load(). Fügen Sie dort nun folgende Codezeilen
ein und speichern Sie den Code anschließend ab.
Private Sub Form_Load()
On Error GoTo Err_Form_Load
' Ganz wichtig, hier muß immer Me.SetFocus stehen
Me.SetFocus
Exit_Form_Load:
Exit Sub
Err_Form_Load:
MsgBox Err.Description
Resume Exit_Form_Load
End Sub
Speichern Sie jetzt das Formular und starten Sie die "normale“
Formular-Ansicht und testen Sie die Funktion durch.
Viel Spaß mit unserem Tipp.
Copyright 2000-2003 Microsys
Kramer– Alle Rechte vorbehalten - Der Download von Tipps und
Programmen von den Seiten www.access-paradies.de erfolgt auf eigene
Gefahr. Microsys Kramer haftet nicht für Schäden, die
aus der Installation oder der Nutzung von Tipps oder Software aus
dem Download-Bereich erfolgen. Trotz aktueller Virenprüfung
ist eine Haftung für Schäden und Beeinträchtigungen
durch Computerviren ausgeschlossen. Schadenersatzansprüche,
aus welchem Rechtsgrund auch immer, sind ausgeschlossen, wenn Microsys
Kramer nicht Vorsatz oder grobe Fahrlässigkeit zu vertreten
hat. Dies gilt auch für Ansprüche auf Ersatz von Folgeschäden
wie Datenverlust. |