Функция DLookup - возвращает неправильное значение

Я пытаюсь запустить следующий код, но я получаю сообщение об ошибке "2471" во время выполнения в DLookUp. Msgstr "Выражение, которое вы ввели в качестве параметра запроса, породило эту ошибку: 'dkim'".

DLookUp возвращает значение, но возвращает неправильное значение. Этот код должен сравнивать Text7 со значением пароля в dlookup. Я что-то пропустил?

Private Sub btn_enter_Click()

    If Me.Text7.Value = DLookup("Password", "tbl_ref_users", _
        "[ID]=" & Me.Text5.Value) Then

        ID = Me.Text5.Value

        'Close logon form and open splash screen

        DoCmd.Close acForm, "form_Login", acSaveNo
        DoCmd.OpenForm "form_Menu"

    Else
        MsgBox "Password Invalid. Please Try Again", vbOKOnly, _
            "Invalid Entry!"
        Me.Text7.SetFocus
    End If

    'If User Enters incorrect password 3 times database will shutdown

    intLogonAttempts = intLogonAttempts + 1
    If intLogonAttempts > 3 Then
      MsgBox "You do not have access to this database.Please contact admin.", _
               vbCritical, "Restricted Access!"
        Application.Quit
    End If

End Sub

1 ответ

Решение

Я получаю ошибку во время выполнения "2471" в DLookUp. Msg str "Выражение, которое вы ввели в качестве параметра запроса, породило эту ошибку: 'dkim'".

Так как DLookup выражение DLookup("Password", "tbl_ref_users", "[ID]=" & Me.Text5.Value)возможно .Value из Me.Text5 это дким.

В этом случае укажите значение текстового поля в DLookup критерии:

DLookup("[Password]", "tbl_ref_users", "[ID]='" & Me.Text5.Value & "'")

Однако тип данных tbl_ref_users.ID должен быть текст, чтобы это работало. Если он числовой, вам нужно сравнить его с числом вместо текстовой строки, такой как "dkim".

Также обратите внимание, что я заключил в скобки имя поля Пароль, потому что это зарезервированное слово.

Другие вопросы по тегам