Tipps "n" Tricks
Anwender-Software - Access

Last Update: 24. Dezember 2001/Webmaster

Feldinhalte in Formularen dynamisch verdecken
Thema: Versionen: Access 97, 2000 und 2002
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.

 

Tipps "n" Tricks
Anwender-Software - Access