我目前正在开发一个类的项目,我在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':条件表达式中的数据类型不匹配。 有人能指出我正确的方向吗?我觉得我的错误就像我引用我的变量一样。
在这个项目之前我从来没有看过任何视觉基础,我没有书/老师/同学可以参考,因为视觉基础不是我们专门学习的东西。
非常感谢您提供任何见解,并对任何格式错误道歉。这是我的第一篇文章。
答案 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