Private Sub cmdfileok_Click()
    Dim filechoose As Integer
    Dim filefindkeys As String
    filefindkeys = "% " & txtfilekey.Text & " %"
    If optall.Value = True Then
        frmmain.adofile.RecordSource = "select * from [file] where 用户号='" & txt_usernum & "' and ((文件编号 like '" & filefindkeys & "') or (存放目录 like '" & filefindkeys & "') or (文件 like '" & filefindkeys & "') or (备注 like '" & filefindkeys & "') )"   ‘在这出现错误:标准表达式中数据类型不匹配
        frmmain.adofile.Refresh
        If frmmain.adofile.Recordset.EOF Or frmmain.adofile.Recordset.BOF Then
            MsgBox "对不起,无相关信息!", vbOKOnly + vbExclamation, "错误"
        End If
……
    End If
End Sub
数据库为ACCESS,字段:用户号 整型 ,文件编号、存放目录、文件 字符型,备注 备注型
问题:哪出错了,怎么解决,以及详细的语句

解决方案 »

  1.   

    filefindkeys =" & txtfilekey.Text & "
    frmmain.adofile.RecordSource = "select * from [file] where 用户号='" & txt_usernum & "' and ((文件编号 like '%" & filefindkeys & "%') or (存放目录 like '%" & filefindkeys & "%') or (文件 like '%" & filefindkeys & "%') or (备注 like '%" & filefindkeys & "%') )" 如果还不行,把条件去掉几个,再试
      

  2.   

    呵呵,ONLINE大哥哦,不行呢,我试过的,就是减到一个也还是不匹配
      

  3.   

    frmmain.adofile.RecordSource = "select * from [file]"
    这样呢?建议你用ado对象,不会有这些问题的
      

  4.   

    .RecordSource = "select * from mz where mc like '%看%' and memo like '%4%'"
    我这边测试没有发现问题对了,你根据看一下recordsource的值,然后再access中执行以下,这样就知道问题了
      

  5.   

    我是用的ADO啊,呵,不过是ADODB
      

  6.   

    我一直怀疑一个地方,可一直不明白的一个地方,果然就是它,刚觉得其他地方都对所以把它改了,where 用户号='" & txt_usernum & "'这句,去掉单引号就可以全部正常,为什么,在其他的窗体都是要加单引号的啊,为什么呢?
      

  7.   

    这样的查找方法是第一次看到,正式项目中是绝对不会用这种方法的,那么多的LIKE,查询就象蜗牛.