Как исправить ошибку компиляции при создании формы входа в Access - PullRequest
0 голосов
/ 01 февраля 2019

Я создаю for для моей базы данных ms access и сталкиваюсь с ошибкой компиляции, когда "Me.txtUserName не найден.

Это для базы данных Access.

Dim User As String
Dim UserLevel As Integer
Dim TempPass As String
Dim ID As Integer
Dim UserName As String
Dim TempID As String


If IsNull(Me.txtUserName) Then
    MsgBox "Please enter UserName", vbInformation, "Username required"
    Me.txtUserName.SetFocus
ElseIf IsNull(Me.txtPassword) Then
    MsgBox "Please enter Password", vbInformation, "Password required"
    Me.txtPassword.SetFocus
Else
    If (IsNull(DLookup("UserLogin", "tblUser", "UserLogin = '" & Me.txtUserName.Value & "' And UserPassword = '" & Me.txtPassword.Value & "'"))) Then
        MsgBox "Invalid Username or Password!"
    Else
        TempID = Me.txtUserName.Value
        UserName = DLookup("[UserName]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
        UserLevel = DLookup("[UserType]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
        TempPass = DLookup("[UserPassword]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
        UserLogin = DLookup("[UserLogin]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
        DoCmd.Close
        If (TempPass = "password") Then
            MsgBox "Please change Password", vbInformation, "New password required"
            DoCmd.OpenForm "frmUserinfo", , , "[UserLogin] = " & UserLogin
        Else
            'open different form according to user level
            If UserLevel = 1 Then            ' for admin
                DoCmd.OpenForm "Admin Form"
            Else
                DoCmd.OpenForm "Navigation Form"
            End If

        End If
    End If
End If

1 Ответ

0 голосов
/ 01 февраля 2019

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

 UserName = DLookup("[UserName]", "tblUser", "[UserLogin] = '" &                    Me.txtUserName.Value & "'") UserLevel = DLookup("[UserType]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")

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

...