Tipp 4.5 - Hat User Kennwort
Wie kann ich überprüfen, ob für einen Benutzer innerhalb der Datenbank ein Kennwort hinterlegt ist?
Mit dieser Funktion können Sie überprüfen, ob für einen Benutzer innerhalb der Datenbank ein Kennwort hinterlegt ist. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.
Hinweis: Durch spezielle Anweisungen können Sie diese Funktion erst ab Access 2000 einsetzen.
Beispiel:
Public Function A2XUserHasPassword(psWrk As String, _ psUser As String) _ As Boolean '// ===================================================== '// Methode | Überprüft, ob ein Kennwort gesetzt ist '// ----------------------------------------------------- '// Parameter | psWrk - Name des Workspace oder Leer- ' string für den aktuellen ' psUser - Name des Benutzers '// ----------------------------------------------------- '// Rückgabe | Boolean - Wahr/Falsch '// ----------------------------------------------------- '// Erstellt | Manuela Kulpa '// | EDV Innovation & Consulting - Dormagen '// ----------------------------------------------------- '// Beispielaufruf: '// ?A2XUserHasPassword(vbNullString, CStr(CurrentUser)) '// ===================================================== Dim wrk As DAO.Workspace Dim usr As User Dim lSaveErr As Long Dim bPassword As Boolean On Error GoTo A2XUserHasPassword_Error ' Initialisieren bPassword = False ' Workspace setzen If psWrk = "" Then Set wrk = DAO.DBEngine.Workspaces(0) Else Set wrk = DAO.DBEngine.Workspaces(psWrk) End If Set usr = wrk.Users(psUser) ' Error-Handling ausschalten On Error Resume Next ' Versuch, ein leeres Kennwort zu setzen usr.NewPassword "", "" lSaveErr = Err.Number On Error GoTo A2XUserHasPassword_Error ' Err-Nummer überprüfen Select Case lSaveErr Case 0 ' kein Fehler, also hat der User kein Kennwort bPassword = False Case 3033: ' Da falsches Altkennwort übergeben, User hat Kennwort bPassword = True Case Else ' bei allen weiteren Fehlern, wird wohl sehr wahr- ' scheinlich kein Kennwort gesetzt sein bPassword = False End Select A2XUserHasPassword_Exit: On Error GoTo 0 Exit Function A2XUserHasPassword_Error: Select Case Err.Number Case Else MsgBox "Fehler " & Err.Number & ": " & _ Err.Description, vbCritical, _ "modSecure.A2XUserHasPassword" End Select Resume A2XUserHasPassword_Exit End Function