strSQL = "select * from TableRK where " & Combo1.Text & " like '%" & Text1.Text & "%'order by 编号",我用的access数据库,这条语句好象没起作用,数据库中数据全部显示了,我把代码贴在下面,各位帮我看看
Dim con As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim strSQL As StringDim strcnn As String
Private Sub cmdOK_Click()
Set DataGrid1.DataSource = rs
End SubPrivate Sub Form_Load()Combo1.AddItem "编号"Combo1.AddItem "型号"Combo1.AddItem "序列号"Combo1.ListIndex = 编号strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\lingxiu.mdb;"con.Open strcnnrs.CursorLocation = adUseClientstrSQL = "select * from TableRK where " & Combo1.Text & " like '%" & Text1.Text & "%'order by 编号"
rs.Open strSQL, con, adOpenKeyset, adLockBatchOptimistic
End Sub
combo1里是TableRK的字段,Text1中输入的是关键字

解决方案 »

  1.   

    '%" & Text1.Text & "%'order 
    "% 是通配符  显示所以含有text1的内容
      

  2.   

    我也经常碰到SQL语句的一些问题,如果语法没错误,我的解决方法是:
    1 Debug.pring (sql) 在立即窗口看看是不是语句中某处有空格或差一个空格
    2 先用具体值执行SQL语句,然后一个个替换成所需的变量,
      找到是哪一个地方有错误,再来修改语句
      

  3.   

    问题是不含有Text1中内容的记录也显示出来了
      

  4.   

    什么错误!?把SQL语句输出来,看看哪的错误,不就知道了吗?
      

  5.   

    debug.print (strsql)看看你的order与单引号之间是否有空格,你的SQL语句没问题.
      

  6.   

    使用access数据库,通配符是“*”,而不是“%”
      

  7.   

    对,应该是like '*" & Text1.Text & "*'order by 编号,否则会出现错误,象你的不含有Text1中内容的记录也显示出来了,也可能什么都不显示
      

  8.   

    为什么是“*”,而不是“%”呢?
    原因在于Access支持的SQL标准太早了。
      

  9.   

    使用*作为通配符号的话,记录集就没有记录。使用%的话就全部都显示了,'和order之间加了空格好象也没有效果,仍然是全部显示
      

  10.   


    '%" & Text1.Text & "%'order 
    "% 是通配符  显示所以含有text1的内容你想显示什么效果 ,.... 你这么写是 全显示了含有text1的内容
    * 是代表一个字符  不是access专有的  '*" & Text1.Text & "*'order 就是说文本1两边 多1个任意字符所以记录
      

  11.   

    Combo1.ListIndex = 编号 返回的是 -1改成 Combo1.ListIndex = 0 试试
      

  12.   

    Private Sub cmdOK_Click()
    Dim Rs As New ADODB.Recordset
    Dim con   As New ADODB.Connection
    Rs.CursorLocation = adUseClient
    strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\xiaohui.mdb;"con.Open strcnnstrSQL = "select * from score where " & Combo1.Text & " like  '%" & Text1.Text & "%'"Rs.Open strSQL, con, adOpenKeyset, adLockBatchOptimistic
    If Not Rs.EOF Then Set DataGrid1.DataSource = Rs
    End SubPrivate Sub Form_Load()
    Combo1.AddItem "UserName"Combo1.AddItem "password"Combo1.AddItem "score"Combo1.ListIndex = UserName
    End Sub
    你的程序我给你改了改,已经运行通过了,你复制过去试试把,看看里面的区别,有一个位置问题
    里面为了方便建数据库我设了比较简单的几个参数,你换上你的就行了
      

  13.   

    同意上面一位大哥的看法 ,用DEBUG.PRING將SQL語句輸出來看一下問題出在哪里就行了,一般來說這種問題是比較好解決的~
      

  14.   

    谢谢riwan61170()也谢谢各位对小弟的关心