我的Access 2007登录方法不起作用

时间:2016-05-05 23:29:26

标签: vba login ms-access-2007

这是我在VBA上的第一次尝试。所以我对一切都不熟悉。

我试图在Access 2007中登录数据库。 我有2 Tables名为TableLogin和TableUserLevel。 TableLogin具有链接到TableUserLevel的ID,用户名,密码和UserLevel。

TableUserLevel具有ID和UserLevel,其具有Admin和User的级别。 我有一个名为LoginForm的form,它有两个名为txtUsername和txtPassword的字段以及一个名为cmdLogin的button字段。

我很确定我的DLookUp方法有误,但我不知道为什么。我使用第一个DLookUp来查看用户名和密码是否与一个ID匹配,如果是,则会转到第二个DLookUp方法,以查看特定用户具有哪个用户级安全性。

现在,我不确定第一个DLookUp是否合适。我不确定它是否检查两个输入是否来自一个ID。我希望它能像那样工作,而最后一个DLookUp方法只返回0而且我不知道为什么。

按钮的VBA代码为:

Private Sub cmdLogin_Click()
    Dim UserLevel As Integer
    Dim Username As String

    If IsNull(Me.txtUsername) Or Me.txtUsername = "" Then
        MsgBox "You must enter a Username.", vbOKOnly, "Required Data"
        Me.txtUsername.SetFocus
        Exit Sub
    End If

    'Check to see if data is entered into the password box

    If IsNull(Me.txtPassword) Or Me.txtPassword = "" Then
        MsgBox "You must enter a Password.", vbOKOnly, "Required Data"
        Me.txtPassword.SetFocus
        Exit Sub
    End If

    'Check value of username and password in tblLogin to see if this

    If IsNull(DLookup("ID", "TableLogin", "Username = '" & Me.txtUsername.Value & "'") And DLookup("ID", "TableLogin", "Password = '" & Me.txtPassword.Value & "'")) Then
        MsgBox "Password or Username invalid. Please Try Again", vbOKOnly, "Invalid Entry!"
    Else
        Username = Me.txtUsername.Value

        If IsNull(DLookup("UserLevel", "TableLogin", "Username = '" & Me.txtUsername.Value & "'")) Then
            MsgBox ("No security level")
        Else
            If UserLevel = 1 Then
                MsgBox ("yes" & UserLevel)
            Else
                MsgBox ("No" & UserLevel)
            End If
        End If

        'Close login form and open screen
        DoCmd.Close acForm, "LoginForm", acSaveNo
    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

0 个答案:

没有答案