Anzeige

MS Access VBA SQL Update

#1
Hallo zusammen!

Zunächst war ich mir nicht sicher ob das Thema unter VBA oder SQL gehört .. :confused:

Es geht um folgendes, habe in meiner Datenbank einen VBA Code, der bei Neueingabe des Userkennworts die Benutzertabelle aktualisiert.

Hier der Code:

Visual Basic:
Private Sub PWReset(BenutzerID As Long)
Dim strPW1 As String
Dim strPW2 As String
Dim strSQL As String

Zeile1:
strPW1 = InputBox("Bitte geben Sie ein neues Kennwort ein!")
strPW2 = InputBox("Bitte wiederholen Sie das neue Kennwort!")

If strPW1 = strPW2 Then
strSQL = "UPDATE tblBenutzer SET tblBenutzer.Passwort = '" & strPW2 & "'" & " AND tblBenutzer.NeueingabePW = FALSE" & " WHERE BenutzerID = "  & BenutzerID
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
CurrentDb.Execute strSQL, dbFailOnError
DoCmd.SetWarnings True
Else
MsgBox "Die Kennwörter stimmen nicht überein!"
GoTo Zeile1
End If

End Sub
Leider funktioniert der SQL Teil nicht. Es kommt keine Fehlermeldung.
Der Datensatz wird aber nicht mit den Werten strPW2 und False aktualisiert. In das Feld tblBenutzer.Passwort wird durch die Abfrage eine 0 geschrieben. Manchmal auch -1.

Habe den SQL Teil nun auch schonmal in eine eigene Abfrage kopiert und ausgeführt. Das Problem bleibt das gleiche.
Hier nochmal die reine Abfrage:
SQL:
UPDATE tblBenutzer SET tblBenutzer.Passwort = 'Hallo' AND tblBenutzer.NeueingabePW = FALSE WHERE BenutzerID = 1
Wenn ich diese ausführe wird in das Feld Passwort des Benutzers 1 der Wert "-1" geschrieben, das Feld NeueingabePW bleibt auf TRUE.
Das Feld Passwort ist als kurzer Text formatiert, das Feld NeueingabePW als Ja/Nein.

Ich bedanke mich schonmal für eure Mühe.

Gruß Alex
 

Zvoni

Erfahrenes Mitglied
#2
SQL:
UPDATE tblBenutzer 
SET tblBenutzer.Passwort = 'Hallo',
tblBenutzer.NeueingabePW = FALSE 
WHERE tblBenutzer.BenutzerID = 1
Btw: Umbauen! Das Goto-Gedöns ist komplett unnötig.
Eine einfache Do..Loop Until reicht vollkommen aus
 
Anzeige
Anzeige