想做到输入号码或姓名就能登入,下面的代码是从老师那考的,用老师的数据库能行,我换了个数据库,改了相应的代码("Select * From tbuser where username='" & txtUserName.Text & "' or userkid='" & TextBox1.Text & "'") 就不能用了,总是出现“标准表达式中数据类型不匹配”      急死了  这是怎么个情况啊!???????
strDb = "qiang.mdb"        Dim csb As OleDbConnectionStringBuilder = New OleDbConnectionStringBuilder()
        csb.Provider = "Microsoft.Jet.OLEDB.4.0"
        csb.DataSource = strDb                    'strDB 为 Access 数据库的绝对路径
        conn = csb.ConnectionString  '获取连接字符串        Dim thisConnection As OleDbConnection = New OleDbConnection(conn)
        thisConnection.Open()                     '连接到数据源        Dim strQuery As String = "Select * From tbuser where username='" & txtUserName.Text & "' or userkid='" & TextBox1.Text & "'"
        Dim thisCommand As OleDbCommand = New OleDbCommand(strQuery, thisConnection)        Dim dr As OleDbDataReader = thisCommand.ExecuteReader()        If dr.Read Then
            MsgBox("欢迎登入山东轻工业学院的图书馆管理系统!")
        Else
            MsgBox("身份错误!")
        End If

解决方案 »

  1.   

    你userid字段应该是长整型的,userkid=" & TextBox1.Text 才可以,不能有单引号,SQL数据库可以有单引号,access不能有单引号.
      

  2.   

    Dim strQuery As String = "Select * From tbuser where username='" & txtUserName.Text & "' or userkid=" & TextBox1.Text 
      

  3.   

    "Select * From tbuser where username='" & txtUserName.Text & "' or userkid='" & TextBox1.Text & "'"你确定你没有拼写错误?你可以这样
    "Select * From tbuser where username='" & txtUserName.Text & "'"
    先看看是不是也出错
      

  4.   

    热闹一下:
    Private Sub cmdLogin_Click()
        If Trim(txtUsername.Text) = "" Then
            MsgBox "【用户名称】不能为空!", 48, "出错提示": txtUsername.SetFocus: Exit Sub
        Else
            g_strUsername = txtUsername.Text
        End If    If txtPassword.Text = "" Then
            MsgBox "【登录口令】不能为空!", 48, "出错提示": txtPassword.SetFocus: Exit Sub
        Else
            g_strPassword = txtPassword.Text
        End If    Call OpenData
        Set rst = CreateObject("ADODB.Recordset"): rst.CursorLocation = adUseClient
        sql = "SELECT * FROM xt_login WHERE strUsername='" & g_strUsername & "'"
        rst.Open sql, cnn, adOpenStatic, adLockReadOnly
        intRecordCount = rst.RecordCount
        If intRecordCount = 1 Then
            Call OpenData
            Set rst = CreateObject("ADODB.Recordset"): rst.CursorLocation = adUseClient
            sql = "SELECT * FROM xt_login WHERE strUsername='" & g_strUsername & "' AND strPassword='" & g_strPassword & "' AND blnAllowLogin='1'"
            rst.Open sql, cnn, adOpenStatic, adLockReadOnly
            intRecordCount = rst.RecordCount
            If intRecordCount = 1 Then
                g_blnPassFlag = True
            Else
                MsgBox "您的【登录口令】不正确,请重新输入!", 16, "出错提示": txtPassword.SetFocus: txtPassword.Text = "": Exit Sub
            End If
        Else
            MsgBox "您的【用户名称】不存在,请重新选择!", 16, "出错提示": txtUsername.SetFocus: Exit Sub
        End If
    End Sub
      

  5.   

    回二楼    access  可以简单引号