Access Benutzerverwaltung immer meine Fehlerausgabe VBA

hume1991

Erfahrenes Mitglied
Guten Abend zusammen,

probiere schon seit Stunden das umzusetzen aber irgendwie klappt es nicht so wie ich will. Habe ungebundene Felder Benutzername Passwort welches über ein Formular läuft, welches in einem Marko autoexec geladen wird. Der Vergleich schlägt auch bei korrekter Eingabe fehl warum? Hier mal mein Code.

Code:
Private Sub abbrechen_Click()
If MsgBox("Wollen Sie die Anwendung wirklich beenden?", vbYesNo + vbExclamation, "Anwendung beenden") = vbYes Then DoCmd.Quit

End Sub



Private Sub Login_Click()

Dim abgleich

abgleich = "SELECT tbl_accounts.benutzer, tbl_accounts.passwort FROM tbl_accounts"



If abgleich = Me.benutzer Then
DoCmd.OpenForm ("frm_Hauptmenu")

End If

If abgleich = Me.Passwort Then
DoCmd.OpenForm ("frm_Hauptmenu")

Else

MsgBox ("Falscher Benutzername oder falsches Passwort")

End If
End Sub
 
Abgleich ist ein string. Du führst deinen SQL-befehl nirgends aus. Mal davon abgesehen, dass du keinen WHERE-abschnitt im SQL hast
 
item: Du solltest aus Sicherheitsgründen nicht Benutzer und Passwort getrennt prüfen, sonder nur die Kombination von beidem

item: Ein einfacher DCount() auf die Tabelle reicht aus
Visual Basic:
If DCount("*", "tbl_accounts", "[benutzer] = '" & Me.benutzer & "' AND [passwort] = '" & Me.passwort  & "'") > 0 Then
    DoCmd.OpenForm "frm_Hauptmenu"
Else
    MsgBox ("Falscher Benutzername oder falsches Passwort")
End If

Ist übrigens analog zu diesem Klassiker. Wahrscheinlich ist der DCount() noch schneller
Visual Basic:
Dim rs As DAO.Recordset
Dim sql As String

sql = "SELECT COUNT(*) FROM tbl_accounts WHERE [benutzer] = '" & Me.benutzer & "' AND [passwort] = '" & Me.passwort  & "'"
Set rs = CurrentDb.OpenRecordset(sql)
If rs.RecordCount() > 0 Then
    DoCmd.OpenForm "frm_Hauptmenu"
Else
    MsgBox ("Falscher Benutzername oder falsches Passwort")
End If
 
Zurück