Hallo zusammen,
ich möchte, dass sich mein Access Formular per X nur mit einem Passwort schliessen lässt. Und wenn es falsch geschrieben oder gar ignoriert wird, dann sollte das aktuelle Formular geöffnet bleiben. Habe dazu folgenden Ansatz:
Private Sub Form_close()
If InputBox("Passwort eingeben", "Passwortabfrage") = "geheim" Then
MsgBox "Richtig"
Else
MsgBox "Falsch"
DoCmd.SelectObject acForm, "Start Zeiterfassung_Halle1"
DoCmd.Restore
End If
End Sub
Das Problem ist, dass es sich auch schliesst wenn das Passwort falsch oder gar weg gelassen wird. Hat jemand eine Idee dazu.
Viele Grüße
Patrick
Verwende statt Form_close einfach Form_Unload():
Private Sub Form_Unload(Cancel As Integer)
If InputBox("Passwort eingeben", "Passwortabfrage") = "geheim" Then
MsgBox "Richtig"
Else
MsgBox "Falsch"
Cancel = True
End If
End Sub
Hallo,
Du musst ein Ereignis verwenden das über Cancel auch abgebrochen werden kann. Schließen kann das nicht und wird immer ausgeführt.
Du musst entladen verwenden, dann wird der Code auch kürzer:
Private Sub Form_Unload(Cancel As Integer)
If InputBox("Passwort eingeben", "Passwortabfrage") <> "geheim" Then
MsgBox "Kennwort falsch"
Cancel = True
End If
End Sub
Die Meldung dass das Kennwort richtig ist, kannst Du Dir auch sparen.
Dass diese Abfrage des Kennworts nicht zwischen Groß und Kleinschreibung unterscheidet ist Dir bewustt ?
geheim, GEHEIM, Geheim, GeHeim ist alles das Gleiche bei dieser Prüfung.
Super, danke euch beiden hat geklappt! :)