错误提示为:No value given for one or more required parameters.代码如下,如果代码还有其它错误,请多多指正,谢谢!!
Private Sub Command1_Click()
Dim strsql As String
    Dim tmp_sql As String
    Dim Conn As ADODB.Connection
    Dim strAccess As String
   
    strAccess = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path + "\tiaomadata.mdb;User Id=admin;Password=;"
    Set Conn = New Connection
    Conn.Open strAccess
    
    tmp_sql = " where id<>0 "
    If Text1.Text <> "" Then
        tmp_sql = tmp_sql & " and 名称 like '%" & Text1.Text & "%' "
    End If
    
    If Text2.Text <> "" Then
        tmp_sql = tmp_sql & " and 条码 like '%" & Text1.Text & "%' "
    End If
    
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    strsql = "select * from tm " & tmp_sql
    
    rs.Open strsql, Conn, adOpenStatic, adLockOptimistic    Set DataGrid1.DataSource = rs
    Conn.Close
    
End Sub

解决方案 »

  1.   

    If Text2.Text <> "" Then
        tmp_sql = tmp_sql & " and 条码 like '%" & Text1.Text & "%' "
    End If
    -------------------------------
    '%" & Text1.Text & "%' "Text1应该写成Text2吧?'%" & Text2.Text & "%' "
      

  2.   

    在 rs.Open  前,把tmp_sql语句打印到立即窗口去,那样容易看出错误Debug.Print tmp_sql
    rs.Open strsql, Conn, adOpenStatic, adLockOptimistic
      

  3.   

    to faysky2(出来混,迟早是要还嘀) :多谢你指正错误,但是我还是不能够执行查询语句,提示错误还是一样,不知道是哪里出错谢谢!!
      

  4.   

    把打印到立即窗口里的sql语句帖出来看看
      

  5.   

    错误提示说明 SQL 语句中有数据库引擎无法识别的字段名等变量名。你的字段名是否写正确了。最好在 Access 的查询窗口中执行一下,它会直接指出它认为没有赋值的参数是哪一个。
      

  6.   

    多谢各位,小弟搞错字段名现在可以查询了。Set DataGrid1.DataSource = rs,我这样赋值给DataGrid但是却没有任何显示,不知道到要怎样赋值才能把查询到的结果显示出来谢谢!!
      

  7.   

    Set DataGrid1.DataSource = rs,我这样赋值给DataGrid但是却没有任何显示,不知道到要怎样赋值才能把查询到的结果显示出来
    ------------------------
    需要设置客户端游标
    rs.CursorLocation=adUseClient  '  设置客户端游标
    rs.Open strsql, Conn, adOpenStatic, adLockOptimistic    Set DataGrid1.DataSource = rs
      

  8.   

    to faysky2(出来混,迟早是要还嘀) :    Dim rs As ADODB.Recordset
        Set rs = New ADODB.Recordset
        strsql = "select * from tm " & tmp_sql
        rs.CursorLocation = adUseClient
        rs.Open strsql, Conn, adOpenStatic, adLockOptimistic    Set DataGrid1.DataSource = rs
        DataGrid1.Refresh数据肯定是有的,还是显示不出来,不知道为什么?
    请各位高手多多指教
      

  9.   

    如果你对DataGrid进行过编辑,换一个DataGrid试试,把原来的那个删掉
      

  10.   

    知道了,你是关闭了数据库连接Conn或记录集对象rs,把那两个Close语句注释掉