Supportnet / Forum / Datenbanken
fehlermeldung bei falschem kennwort
Frage
Hi!
Ich habe eine manuelle Passwortänderung (also mit newpassword statt über Menü) erstellt. Alles funktioniert super. Aber falls das eingegebene alte Kennwort nicht dem wirklichen Passwort entspricht kommt eine Fehlermeldung "sie haben keine berechtigung ...". Alles halb so wild. Aber es sieht halt nicht schön aus. Kennt jemand eine Lösung? Kann mir nicht vorstellen, dass man manuell testen kann, ob das Passwort stimmt, oder?
Gruß, ich.
P.S. Mehrbenutzerbetrieb, dehalb: "keine berechtigung"
Antwort 1 von Marie
natürlich kann man manuell ein Passwort abspeichern und in ein Formular eingeben lassen und prüfen. Fragt sich jedoch allererst mal um welches Programm es sich handelt :-(
Antwort 2 von need_help
Hallo!
Also ich rede von Access2003. Bin mir allerdings nicht sicher ob ich mich richtig ausgedrückt habe. Würde gerne wissen, ob folgendes irgendwie zu realisieren geht:
text="irgendein text"
if text=password then ...
Ich möchte halt das eingegebene "alte" Passwort mit dem wirklichen "alten" Passwort vergleichen.
Also ich rede von Access2003. Bin mir allerdings nicht sicher ob ich mich richtig ausgedrückt habe. Würde gerne wissen, ob folgendes irgendwie zu realisieren geht:
text="irgendein text"
if text=password then ...
Ich möchte halt das eingegebene "alte" Passwort mit dem wirklichen "alten" Passwort vergleichen.
Antwort 3 von need_help
Hey Marie.
Was machst du eigentlich um 04:05 Uhr vor dem PC?
Was machst du eigentlich um 04:05 Uhr vor dem PC?
Antwort 4 von erik
Doch, du hast dich schon richtig ausgedrückt. Du willst im Fall eines falschen alten Kennwortes die hässliche Accessmeldung unterdrücken und stattdessen einen eigenen Text auf den Bildschirm bringen.
Das alte Kennwort kannst du nicht für den Vergleich auslesen, das wäre ja ein krasses Sicherheitsleck. Stattdessen wird ein Laufzeitfehler ausgelöst, den du abfangen und auswerten kannst. Bei einem falschen Kennwort werden meines Wissens die Laufzeitfehler 3033 "Sie haben keine Berechtigung..." und 3001 "Falscher Argumenttyp" ausgelöst.
Das alte Kennwort kannst du nicht für den Vergleich auslesen, das wäre ja ein krasses Sicherheitsleck. Stattdessen wird ein Laufzeitfehler ausgelöst, den du abfangen und auswerten kannst. Bei einem falschen Kennwort werden meines Wissens die Laufzeitfehler 3033 "Sie haben keine Berechtigung..." und 3001 "Falscher Argumenttyp" ausgelöst.
´....
On Error Goto ErrHandler
[User-Objekt].NewPassword strOldPassword, strNewPassword
ExitFunction:
Exit Function ´bzw. Exit Sub
ErrHandler:
If Err.Number = 3033 Or Err.Number = 3001 Then
MsgBox "Das alte Kennwort ist falsch.", vbExclamation
Else
MsgBox "Das Kennwort wurde nicht geändert." & vbCrlf & Err.Description, vbCritical
End If
Resume ExitFunction
Antwort 5 von need_help
Perfekt!!
Genau wie ich es wollte. Vielen Dank.
Kannst du mir aber noch für´s Verständnis sagen, was
vbExclamation, sowie vbCrlf und so bedeuten?
Genau wie ich es wollte. Vielen Dank.
Kannst du mir aber noch für´s Verständnis sagen, was
vbExclamation, sowie vbCrlf und so bedeuten?
Antwort 6 von erik
Freut mich, dass ich dir helfen konnte.
In Bezug auf die Konstanten bietet Access selbst genug Hilfe. Klicke dort im Code mit der Maus in die Konstantennamen hinein und drücke die F1-Taste.
In Bezug auf die Konstanten bietet Access selbst genug Hilfe. Klicke dort im Code mit der Maus in die Konstantennamen hinein und drücke die F1-Taste.
Antwort 7 von need_help
ja, danke!
Antwort 8 von Marie
vbExclamation gibt ein Ausrufezeichen in der Meldung, vbcrlf ist ein Zeilenumbruch im Text.
mit & vbCrlf & vbCrlf & kriegste ne Leerzeile. Probiers aus.
mit & vbCrlf & vbCrlf & kriegste ne Leerzeile. Probiers aus.
Antwort 9 von need_help
Danke.