运行时错误3464数据类型misatch

时间:2015-12-10 16:21:01

标签: database vb.net ms-access

此代码每当我进入时都会给出:

  

数据不匹配错误3464

我正在尝试练习您的视频"从Access第1部分创建登录"

以下是代码:

Private Sub Command1_Click()
  If IsNull(Me.txtLoginId) Then
      MsgBox "Please enter LoginID", vbInformation, "LoginID Required"
      Me.txtLoginId.SetFocus
   ElseIf IsNull(Me.txtPassword) Then
     MsgBox "Please enter password", vbInformation, "Password Required"
     Me.txtPassword.SetFocus
   Else
     'process the job
     If (IsNull(DLookup("UserLogin", "tblUser", "UserLogin ='" & Me.txtLoginId.Value & "'"))) Or _
        (IsNull(DLookup("password", "tblUser", "Password ='" & Me.txtPassword.Value & "'"))) Then
       MsgBox "Incorrect LoginId or Password"
     Else
       MsgBox "LoginID and Password correct"
     End If
  End If
End Sub

1 个答案:

答案 0 :(得分:0)

那段代码错了,我知道你是从视频中复制过来的,但它做得不对,我觉得作者后来修改了。例如,这不测试用户id是否与密码匹配,它只测试用户ID或密码是否与任何值匹配。因此,您可能拥有多个具有相同密码的用户,并且会通过验证。当你得到数据类型不匹配时,它会表明你的表没有正确设置,在这里查看引号,userid和password都应该是text..are吗?

你想要的是这样的; 如果(IsNull(" [UserLogin]"," tblUser"," [Userlogin] ='"& Me.txtLoginID.Value &"'&password ='"& Me.txtPassword.Value&"'")))然后

但是我没有使用DLookup,而是使用eLookup ..更快更灵活。 http://allenbrowne.com/ser-42.html