如何修复编译错误创建在Access登录窗体

问题描述 投票:0回答:1

我从我的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
access-vba
1个回答
1
投票

一个直接的问题是,你对这里的单一线上的两个变量赋值:

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

这些应该被移动到单独的线,或可替代地,这两个变量赋值应该用分号隔开。

© www.soinside.com 2019 - 2024. All rights reserved.