Lösung: |
Es bietet sich an, in so einem Fall einen
einfachen Zugriffsschutz einzurichten, der beim Laden des Formulars
die Eingabe eines Passwortes verlangt. Die folgende Lösung ist
sicherlich kein Hindernis für den Access-Profi, für den
"normalen" Anwender reicht sie aber allemal aus:
- Legen Sie eine neue Tabelle an, die
lediglich ein Feld "Passwort" vom Datentyp
"Text" beinhaltet und sichern Sie diese Tabelle unter
dem Namen "USysPasswort". Alle Tabellen, die mit
"USys" beginnen, werden von Access im
Datenbank-Fenster nicht angezeigt. Das ist also die erste Hürde,
die ein "Hacker" zu überwinden hätte.
- Damit Sie zunächst das Passwort im ersten
(und einzigen Datensatz) eingeben können, wählen Sie das Menü
Extras-Optionen an, wechseln
auf die Registerkarte "Ansicht" und aktivieren Sie die
Option Systemobjekte im
Bereich "Einblenden".
- Öffnen Sie die Tabelle "USysPasswort"
per Doppelklick im Datenbank-Fenster, geben Sie das gewünschte
Passwort ein und schliessen Sie die Tabelle wieder. Machen Sie
anschliessend die Anzeige der Systemobjekte wieder rückgängig.
- Öffnen Sie das zu schützende Formular im
Entwurfsmodus und wählen Sie das Menü Ansicht-Eigenschaften
an.
- Stellen Sie die Eigenschaft "Beim
Laden" auf den Eintrag "[Ereignisprozedur]" ein
und klicken Sie auf die kleine Schaltfläche mit den drei
kleinen Punkten. Im VBA-Editor geben Sie folgende Anweisungen
ein:
Sub Form_Load ()
Dim strPW As String
Dim varPW As Variant
On Error Resume Next
varPW = DLookup("[Passwort]", "USysPasswort")
If Err <> 0 Then
Beep
MsgBox "Fehler in Passwortabfrage!
" & _
"- bitte Admin verständigen!"
DoCmd.Close
Exit Sub
End If
strPW = InputBox$("Bitte Passwort eingeben:",
_
"Nur für Administratoren!", "")
If strPW = "" Or strPW <> varPW Then
DoCmd.Close
End Sub
- Das wäre dann die zweite Hürde, die ein
"Hacker" zu nehmen hätte. Selbst wenn jemand das
Formular im Entwurfsmodus öffnet, muß er wissen, wo genau die
Abfrage erfolgt und muß zudem entsprechende VBA-Kenntnisse
haben, um diese Abfrage außer Kraft zu setzen.
- Speichern Sie das Formular und lassen rufen
Sie es auf, um die Lösung zu testen.
|