Набор записей не обновляется - PullRequest
0 голосов
/ 14 ноября 2018

Я создал форму, позволяющую пользователю менять свой пароль.

Я создал набор записей и использовал редактирование / обновление, чтобы сохранить его в запросе, но новый пароль не сохраняется в запросе.

Мой код выглядит следующим образом:

Private Sub txtNewPass2_AfterUpdate()

Dim db As DAO.Database
Dim rst As DAO.Recordset

Set db = CurrentDb
Set rst = db.OpenRecordset("qryUsers", dbOpenDynaset)

    If Me.txtNewPass1 = Me.txtNewPass2 Then

        rst.MoveFirst
        Do Until rst.EOF
        If rst!NName = CboUserName.Column(0) Then
        rst.Edit
        rst!Password = txtNewPass2.Value
        rst.Update
        End If
        rst.MoveNext
        Loop

    DoCmd.Openform("frmLogin")

    Else: MsgBox "Passwords not Matching"

    End If
End Sub

1 Ответ

0 голосов
/ 14 ноября 2018

Выражение:

DoCmd.Openform("frmLogin")

приведет к синтаксической ошибке, так как скобки, окружающие аргументы, не требуются, если значение, возвращаемое функцией, не используется.


Тем не менее, вам может быть удобнее просто выполнить инструкцию SQL для выполнения обновления, а не перебирать набор записей, например:

Private Sub txtNewPass2_AfterUpdate()
    If txtNewPass1 = txtNewPass2 Then
        With CurrentDb.CreateQueryDef("", "UPDATE qryUsers SET qryUsers.Password = ?pwd WHERE qryUsers.NName = ?usr")
            .Parameters(0) = txtNewPass2
            .Parameters(1) = CboUserName.Column(0)
            .Execute
        End With
        DoCmd.Openform "frmLogin"
    Else
        MsgBox "Passwords not Matching"
    End If
End Sub

Использование параметров курса для учета пользователей, более известных как Бобби Столы .

...