Hallo Acces-O-Mania forum, ich habe folgendes Problem:
Ich kriege jedesmal bei eingabe von daten und klick auf den Login button die Fehlermeldung "Laufzeitfehler 3075"
Syntaxfehler (fehlender Operator) in Abfrageausdruck 'Benutzername =""JT"" AND Kennwort = ""1234""
Der Code ist folgender:
Private Sub cmdLogin_Click()
Dim lngBenutzerID As Long
lngBenutzerID = Nz(DLookup("BenutzerID", _
"Benutzer", "Benutzername = ''''" _
& Me!txtBenutzername _
& "'''' AND Kennwort = ''''" _
& Me!txtKennwort & "''''"), 0)
If lngBenutzerID = 0 Then
MsgBox "Benutzername und/oder " _
& "Kennwort sind falsch."
Else
MsgBox "Anmeldung erfolgreich!"
OptionEinstellen "CurrentUserID", _
CStr(lngBenutzerID)
DoCmd.Close acForm, Me.Name
End If
End Sub
Bei klick auf den Login button ohne eingabe, zeit er korrekt den Text an, das es falsch ist!
Ich habe das ganze von dieser Website kopiert, da ich keine Ahnung von Access habe und noch lerne: https://access-im-unternehmen.de/Benutzerverwaltung/
Habe den Code lediglich ein wenig angepasst.
Was kann ich tun?
Hallo Jan,
Wozu sind die ganzen Quotes nötig?
Lass dir den Kriterien-String mal im Direktfenster anzeigen.
Dim sCriteria As String
sCriteria = "Benutzername = '" _
& Me!txtBenutzername _
& "' AND Kennwort = '" _
& Me!txtKennwort & "'"
Debug.Print sCriteria
gruss ekkehard
Hallo,
OptionEinstellen ist eine Prozedur/Funktion? oder Makro?
im Direktfenster sieht das z.B. so aus:
Benutzername = ''''Tester'''' AND Kennwort = ''''123ABC''''Da sind eindeutig ein paar Anführungszeichen zu viel.
Wenn dein Login ein klein wenig was taugen sollte wäre es nicht schlecht Benutzername und Passwort in Variablen zu speichen und diese mittels regulärem Ausdruck zu untersuchen. Beispielsweise Leerzeichen im Benuternamen/Passwort verbieten etc.
Gruß Andreas