Dim Smc As String   '当前选择名称
    Smc = Trim(MFmc.TextMatrix(MFmc.row, 1))
    Dim rsMC As New ADODB.Recordset
cnn.Open
    rsMC.CursorLocation = adUseClient
    rsMC.Open "select 校核,集团编码,零部件名称,状态描述,老编码,备注 from  已编码数据  where 零部件名称='" + Smc + "'", cnn
Set MFzt.DataSource = rsMC
cnn.close红色的部份没得问题噻,而且选其它名称都能筛选出来,唯独发现有一个名称筛选不出来,所以我就将SMC变量直接改成这个名称就可以筛选,没搞懂,怎么会出现这种事,怎么解决。数据库里面的数据我都仔细检查了的,没问题,我直接改名称测试也能证明数据库数据没问题。高手们,看你们能不能解决。

解决方案 »

  1.   

    Trim(MFmc.TextMatrix(MFmc.row, 1))检查这部分返回的值是否正确。
      

  2.   

    http://download.csdn.net/detail/veron_04/1644211
      

  3.   

    rsMC.Open "select 校核,集团编码,零部件名称,状态描述,老编码,备注 from 已编码数据 where 零部件名称='" + Smc + "'", cnn
    ........
    唯独发现有一个名称筛选不出来.......检查数据库,该名称估计在数据末尾包含空格或者回车符号试试
    rsMC.Open "select 校核,集团编码,零部件名称,状态描述,老编码,备注 from 已编码数据 where 零部件名称 LIKE '%" + trim(Smc) + "%'", cnn
      

  4.   

    检查数据末没有空格也没有回车符
    LIKE查询不是我要的条件。
      

  5.   

    让你使用Like只是试试看,如果like能查到数据,可以肯定的是数据内容问题
      

  6.   

        MsgBox Smc
        If Smc = "车架" Then
        MsgBox "成功"
        
        End If跳出“车架”提示,但没跳出“成功”,更怪了。
      

  7.   

    debug.print "select 校核,集团编码,零部件名称,状态描述,老编码,备注 from 已编码数据 where 零部件名称='" + Smc + "'"看看到底你写进去的SQL语句是什么.
      

  8.   

    rsMC.Open "select 校核,集团编码,零部件名称,状态描述,老编码,备注 from 已编码数据 where ltrim(rtrim(零部件名称))='" & trim(Smc) & "'", cnn
      

  9.   

    不一定是空格,查看下smc是不是含有其他非显示符号
      

  10.   

    Smc 中包含非可打印字符。在代码中打一个中断,看看 Smc 中究竟是什么。首先可以看看 Len(Smc) 是否大于 2。
      

  11.   

    很明显
    MFmc.TextMatrix(MFmc.row, 1)的内容是“车架”加一些特殊字符,你还是检查MFmc.TextMatrix(MFmc.row, 1)这个咋来的吧
      

  12.   

    建议LIKE模糊查询下,如果能查出数据,说明你的数据多了空格,特殊符号,或者大小写