Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub Command1_Click()
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dm.mdb;Persist Security Info=False"
cn.CursorLocation = adUseClient
cn.Open
Dim sql As String
 sql = "select * from sbjbztb where " & Combo1.Text & " =  " & Text1.Text & ""
 rs.Open sql, cn, adopenkdyset, adLockOptimistic
If rs.RecordCount > 0 Then
 Set DataGrid1.DataSource = rs
 DataGrid1.Refresh
 Else
 MsgBox "未发现此资产 "
 End If
 rs.Close
cn.Close
End Sub
这是我写的一个查询的语句,用datagrid控件来显示查询出来的结果,可是一执行,就出现“实时错误‘-2147217904(80040e10)':至少一个参数没有被指定值”的错语,我已经改了两天了,也没改对,哪位大侠帮帮我,十分感谢。在线等。

解决方案 »

  1.   

    试一试Private Sub Command1_Click()
        Dim cn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim sql As String
        
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dm.mdb;Persist Security Info=False"
        cn.CursorLocation = adUseClient
        cn.Open
        
        
        sql = "select * from sbjbztb where " & Combo1.Text & " =  '" & Text1.Text & "' "
        rs.Open sql, cn, adopenkdyset, adLockOptimistic
        If rs.RecordCount > 0 Then
            Set DataGrid1.DataSource = rs
            DataGrid1.Refresh
        Else
            MsgBox "未发现此资产 "
        End If
        
        rs.Close
        cn.Close
    End Sub
      

  2.   


    这个查询里,combo1是用来输入查询条件,比如说设备的型号、或者是数量等等,后面的text1是输入条件的具体值。
      

  3.   


    谢谢jhone99,我试过了,还是不行,还出现那个错误。
      

  4.   

    可能是字段数据类型造成的错误,你debug.print sql,看一下......
      

  5.   

    " & Combo1.Text & " =  '" & Text1.Text & "' " 中" & Combo1.Text & "应该是sbjbztb表里的一个字段,可能是你
    没有设置Combo1.ListIndex = 0,导致编译时Combo1控件中没有数值即等于“”,从而" & Combo1.Text & "为空,你那下拉列表框属性是不是即可以输入又可以下拉选择的?可以试图用Combo1.AddItem ("型号")....等先进行填充!
      

  6.   

    补充一下, " & Combo1.Text & " =  " & Text1.Text & "应该是这样: '" & Combo1.Text & " '=  '" & Text1.Text & "'
      

  7.   


    '" & Combo1.Text & " '字段两边不能加“'”
    '" & Text1.Text & "'这个加就可以了
      

  8.   


    '主要的原因是因为Combo1.Text 与他的表不配.
    '也就是说, Combo1.Text 中的值.在表中没有此项.
    '比如:表是这样的表
    '表名:用户信息
    '表里面的内容 : 用户ID  用户名  密码
    '而 Combo1.Text 为 : 新项目  
    '他的表中根本就没有"新项目" 这个字段,就出现问题了.'解决办法: 确认 combo1 下拉列表框中的内容与否与表中的字段相配. 
      

  9.   

        rs.Open sql, cn, adopenkdyset, adLockOptimistic adopenkdyset 改为 adopenkeyset