Hallo Leute,
ich habe ein Formular mit einem Kombi-Feld SELECT [ID], [Mitarbeitername], [Position] FROM [Erweitertes Personal] ORDER BY [Mitarbeitername];
Ein Ungebundenes Textfeld (Kennwort).
Nun habe ich in der Abfrage [Erweitertes Personal] noch das Feld "Kennwort"
Wie bekomme ich hin, dass das Formular "Start" gestartet wird, wenn Mitarbeitername und Kennwort übereinstimmen?
Danke für eure Hilfe!
So sollte das klappen:
Private Sub Kennwort_AfterUpdate()
If Me!Kennwort = DLookUp("Kennwort","Erweitertes Personal]","ID=" & Me!cboMitarbeiter) Then
DoCmd.OpenForm "Start"
Else
MsgBox "Kennwort ungültig!"
End If
End Sub
Hallo,
bei Passwort-Prüfungen rate ich zur Verwendung der Funktion StrComp(), die auf binären Vergleich eingestellt werden kann und damit auch Groß-/Kleinbuchstaben unterscheidet.
Danke Maggie, dein Code funktioniert super.
Wie kann ich die Funktion "StrComp" einbauen?
Und habt ihr vielleicht eine Idee, wie ich dem User bei der ersten Anmeldung das Passwort ändern lassen kann?
Vielen Dank für eure Vorschläge bzw. für eure Hilfe!
Hallo,
Zitat
Wie kann ich die Funktion "StrComp" einbauen?
einfach mal in die VBA-Hilfe schauen..
Zitathabt ihr vielleicht eine Idee, wie ich dem User bei der ersten Anmeldung das Passwort ändern lassen kann?
Dazu könntest du einen Button hinzufügen der zwei Eingabefelder zum Ändern einblendet oder ein PopUp-Formular zu diesem Zweck öffnet.
Also ich hab jetzt ein Formular erstellt, mit drei Textfeldern.
pwdcurrent, pwdnew und pwdconfirm.
Dazu noch einen ok-button und einen cancel-button.
Wie muss der Code jetzt aussehen, wenn auf dem Formular vorher folgendes geschieht:
Private Sub cmdLogin_Click()
If Me!Kennwort = DLookup("Kennwort", "[Erweitertes Personal]", "ID=" & Me!cboCurrentEmployee) Then
DoCmd.OpenForm "Start"
DoCmd.Close acForm, "logon"
DoCmd.Close acForm, "startbildschirm"
Else
MsgBox "Wrong Password! Try again!"
End If
End Sub
Sorry, aber ich bin Anfänger in VB...
Hallo,
also das Popup-Formular bekomme ich schon mal angezeigt,
wie kann ich nun vergleichen, ob pwdcurrent = aktuelles Passwort ist?
Und wie kann ich das neue pwdnew und pwdconfirm abgleichen und in die Tabelle personal schreiben lassen?
Danke schon einmal für eure Hilfe!!!
Hallo,
wie du das eingegebene Passwort mit dem gespeicherten Passwort vergleichen kannst, siehst du doch in dem Code, den du gestern gepostet hast. Zum Speichern des neuen Passworts kannst du eine Aktualisierungsabfrage einsetzen oder per Recordset auf die Tabelle zugreifen.
Hallo,
ich habe mich mal versucht, doch irgendwie funktioniert dass leider nicht, so wie ich mir das vorstelle.
Private Sub Befehl6_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = Application.CurrentDb
Set rs = db.OpenRecordset("Personal")
If IsNull(Me!pwdcurrent) Then MsgBox "Please insert current Password!", vbCritical, "Caution!" Else
If IsNull(Me!pwdnew) Then MsgBox "Please insert a new Password!", vbCritical, "Caution!" Else
If Nz(Me!pwdnew) <> Nz(Me!pwdconfirm) Or Len(Me!pwdnew) < 4 Then MsgBox "New Password does not match to confirmation!", vbCritical, "Caution!"
If Me!pwdcurrent <> DLookup("Kennwort", "[Erweitertes Personal]", "ID=" & Me!cboCurrentEmployee) Then MsgBox "Wrong current Password!" Else
rs.Fields("Kennwort") = Me!pwdnew
DoCmd.Close acForm, "PWDCHANGE"
End Sub
Ich muss doch noch irgendwie eine Prüfung einbauen, welcher Benutzer sein Kennwort gerade ändert, oder und das Formular "PWDCHANGE" schließt sich leider nicht...
Hallo,
so könnte da schon eher was draus werden:
Private Sub Befehl6_Click()
Dim rs As DAO.Recordset
Set rs = CurrentDB.OpenRecordset("Select * From Personal Where ID=" & Me!cboCurrentEmployee)
If rs.EOF Then
rs.Close
MsgBox "Please choose current Employee!"
Exit Sub
End If
If IsNull(Me!pwdcurrent) Then
MsgBox "Please insert current Password!", vbCritical, "Caution!"
ElseIf IsNull(Me!pwdnew) Then
MsgBox "Please insert a new Password!", vbCritical, "Caution!"
ElseIf Nz(Me!pwdnew) <> Nz(Me!pwdconfirm) Or Len(Me!pwdnew) < 4 Then
MsgBox "New Password does not match to confirmation!", vbCritical, "Caution!"
ElseIf Me!pwdcurrent <> DLookup("Kennwort", "[Erweitertes Personal]", "ID=" & Me!cboCurrentEmployee) Then
MsgBox "Wrong current Password!"
Else
rs.Edit
rs.Fields("Kennwort") = Me!pwdnew
rs.Update
DoCmd.Close acForm, Me.Name
End If
rs.Close
End Sub
Hallo,
leider funktioniert der Code nicht. Liegt es daran, dass ich das aus einem Pop-Up-Fenster machen will?
Sprich, wenn ich auf "Kennwort ändern" klicke, dann erscheint ein Pop-Up-Fenster, auf dem die Felder mit den Passwortänderungen sind.
Hat jemand eine Idee, wie ich dass besser händeln kann?
Danke schon einmal im Voraus!
Hab es selbst hinbekommen!
Hab die Kombibox kopiert und nicht sichtbar eingefügt.
Jetzt funktioniert es!