未绑定的文本框与表中的值相比,数据类型不匹配?

时间:2015-04-25 20:54:22

标签: ms-access access-vba ms-access-2007 ms-access-2010

我目前正在开发一个类的项目,我在MS Access中构建一个数据库,并且第一次使用了一些SQL和VB。我试图在此项目中包含登录功能。

我的表单在标记为“login”的按钮上使用此代码,以在未绑定的文本框中接收来自用户的输入,名为txtEmployeeID和txtPassword,并在表Employee_T中比较它们,名为EmployeeID和EmployeePW。 EmployeeID是一个整数值,而EmployeePW是一个字符串。

    Private Sub Command1_Click()
    If IsNull(Me.txtEmployeeID) Then
        MsgBox "Please enter EmployeeID", vbInformation, "EmployeeID Required"
        Me.txtEmployeeID.SetFocus
    ElseIf IsNull(Me.txtPassword) Then
        MsgBox "Please enter password", vbInformation, "Password Required"
        Me.txtPassword.SetFocus
    Else

        If (IsNull(DLookup("EmployeeID", "Employee_T", "EmployeeID = ' & Me.txtEmployeeID.Value & ' "))) Or _
        (IsNull(DLookup("EmployeePW", "Employee_T", "EmployeePW = ' & Me.txtPassword.Value & ' "))) Then
            MsgBox "Incorrect LoginID or Password"
        Else
        End If
    End If

    End Sub

然而,在按下登录按钮后,我遇到错误:运行时错误'3464':条件表达式中的数据类型不匹配。 有人能指出我正确的方向吗?我觉得我的错误就像我引用我的变量一样。

在这个项目之前我从来没有看过任何视觉基础,我没有书/老师/同学可以参考,因为视觉基础不是我们专门学习的东西。

非常感谢您提供任何见解,并对任何格式错误道歉。这是我的第一篇文章。

2 个答案:

答案 0 :(得分:1)

看起来你错误地连接了你的DLookup中的vaues。

'" & password & "'表示字符串

" & employeeID & "表示整数

编译时,它们将如下所示:

string - '" & variable & "' -> Compiled -> 'YourVariableValue'
integer - " & employeeID & " -> Compiled -> 15

答案 1 :(得分:0)

你需要像这样逃避你的报价:(小心使用它,就像我在这里发布一样)

If (IsNull(DLookup("EmployeeID", "Employee_T","EmployeeID = """ & Me.txtEmployeeID.Value & """"))) Or _
(IsNull(DLookup("EmployeePW", "Employee_T", "EmployeePW = """ & Me.txtPassword.Value & """"))) Then