ユーザーが古いパスワードをテキストボックスに入力し、新しいパスワードを別のテキストボックスに入力してパスワードを更新できるプログラムがあります。
その後、更新クエリによってデータベースが新しいパスワードで更新されます。
Try
If tbOldPassword.Text <> "" Then
For Each Row In ds.Tables("sqlAddNewDetails").Rows
If Row.Item(0) = gblstrUserID Then
If Row.Item(1) = tbOldPassword.Text Then
If tbPassword.Text = tbRePassword.Text Then
'Updates the database
sqlUpdate = ("UPDATE Users SET Password = '" & tbPassword.Text & "' WHERE userID = " & Row.Item(0))
Dim cmd As New OleDbCommand(sqlUpdate, con)
cmd.ExecuteNonQuery()
MsgBox("Password successfully changed")
Else : MsgBox("The passwords are not the same")
End If
Else : MsgBox("Invalid old password")
End If
End If
Next
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
ただし、コードが cmd.ExecuteNonQuery() に到達するたびに、Update クエリに構文エラーがあることを示すエラーがスローされます。ただし、Microsoft Access でこのクエリを使用すると、正常に動作するため、Update クエリ自体は正しく記述されます。何が間違っている可能性がありますか?
注: 同じ Sub ルーチン内の別のコードで UPDATE クエリを使用していますが、そこで動作します。このクエリについての何か。
注: Update クエリを UPDATE Users SET EMAIL = '" & tbPassword.Text & "' WHERE userID = " & Row.Item(0)" に変更すると、機能します。そのエラーをスローするパスワードに関する何か。