|
Bei der Verwaltung von vertraulichen Daten
ergibt sich immer wieder das Problem, dass sich der Blick von
unbeteiligten, aber nicht weniger neugierigen Dritten auf den
Bildschirm nicht vermeiden lässt. So wäre es bei der Verwaltung
von Personaldaten wenig wünschenswert, wenn sofort auf den ersten
Blick das Gehalt eines Mitarbeiters sichtbar wäre. Mit einem
kleinen aber effektiven Trick lassen sich derartige Situationen
entschärfen: drei VBA-Prozeduren sorgen dafür, dass das Feld mit
der Gehaltsangabe nach dem Anwählen eines Datensatzes leer ist und
der Inhalt erst dann erscheint, wenn Sie das Feld explizit anklicken
oder anwählen. Gehen Sie dazu folgendermassen vor:
- Wechseln Sie in den Entwurfsmodus des
Formulars, in dem ein Feldinhalt verdeckt werden soll.
- Markieren Sie das entsprechende Textfeld
und blenden Sie das Eigenschaftenfenster ein.
- Notieren Sie die Zahlen, die augenblicklich
den Eigenschaften "Hintergrundfarbe" und
"Textfarbe" zugeordnet sind.
- Weisen Sie dem Ereignis "Bei
Fokuserhalt" die folgende Prozedur zu, wobei die Zahl
"0" durch die Zahl ersetzt werden muss, die Sie als
"Textfarbe" ermittelt haben:
Private Sub
Bruttogehalt_GotFocus()
On Error Resume Next
Screen.ActiveControl.ForeColor = 0
End Sub
- Dem Ereignis "Bei Fokusverlust"
weisen Sie die folgende Prozedur zu (hier ersetzen Sie 16777215
durch die als Hintergrundfarbe ermittelte Zahl):
Private Sub
Bruttogehalt_LostFocus()
Screen.ActiveControl.ForeColor = 16777215
End Sub
- Schliesslich wählen Sie noch das Menü Bearbeiten-Formular
auswählen an und legen das Ereignis "Beim Öffnen"
folgendermassen fest (passen Sie die Farbnummer wie in Schritt 5
an und ersetzen Sie "Bruttogehalt" durch den Namen des
zu verdeckenden Feldes):
Private Sub
Form_Open(Cancel As Integer)
Me![Bruttogehalt].ForeColor = 16777215
End Sub
- Wenn Sie nun den Entwurfsmodus verlassen
und das Formular anzeigen lassen, werden Sie feststellen, dass
der Inhalt des kritischen Feldes nicht mehr zu sehen ist. Er
wird erst wieder sichtbar, wenn Sie direkt in das Feld klicken.
Diese Technik lässt sich übrigens auch für
mehrere Felder eines Formulars gleichzeitig einsetzen. Sie müssen
lediglich die Ereignisprozeduren "Bei Fokuserhalt" und
"Bei Fokusverlust" für jedes Feld entsprechend anpassen
und ausserdem eine neue Zeile zur Prozedur "Form_Open"
hinzufügen. |