Private Sub Command1_Click()Dim objcon  As New ADODB.Connection
Dim objrs  As New ADODB.Recordset
objcon.Open "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\student.mdb"
SQL = "select * from info where " & Combo1.Text & " =' " & Text1.Text & "'"
objrs.Open SQL, objcon, 1, 1If objrs.EOF = True Then‘输出数据语句(省略)Unload MeElse: MsgBox "没有找到相关记录!", , "提示"End If
End SubCombo1是一个组合框,用来选择查询的类型;Text1用来输入查询的条件。
当我输入一个已知的数据查询时,会提示出错:BOF或EOF中有一个是“真”,或者当前的记录被删除。请问问题出在哪??请大家帮帮忙~谢了~~

解决方案 »

  1.   

    怎么少了
    set objrs=new adodb.recordset
      

  2.   

    Dim   objrs     As   New   ADODB.Recordset  不是了吗?
      

  3.   

    Private   Sub   Command1_Click() Dim   objcon     As   New   ADODB.Connection 
    Dim   objrs     As   New   ADODB.Recordset 
    objcon.Open   "Provider=Microsoft.Jet.OLEDB.3.51;Persist   Security   Info=False;Data   Source= "   &   App.Path   &   "\student.mdb " 
    SQL = "select * from info where " & Combo1.Text & " = '" & Text1.Text & "'" 
    if objrs.state<>adstateclosed then objrs.close
    objrs.Open   SQL,   objcon, adopenkeyset,adlockreadonly
    if objrs.recordcount>0 then
      ‘输出数据语句(省略) 
       objrs.close
       lbjcon.close
       Unload   Me 
    Else
       MsgBox   "没有找到相关记录! ",   ,   "提示 " 
       objrs.close
    End If 
    End Sub 
      

  4.   

    谢谢楼上,但是还有一个问题存在,就是为什么我会查找不到记录呢?我有两个form,form1是用来显示资料,form2是用来查找记录,查找到的记录在form1显示。但是我用一个已知的记录(数据库已有)去查找,只会执行Else语句,为什么啊?
      

  5.   

    既然查不到数据,还是sql语句有问题!
      

  6.   

    怎么改啊,我学过asp,对sql语句还是有一定的认识,但是对于vb中有哪些不同,我就不清楚,希望大家帮我改改,谢谢
      

  7.   

    info 改为 [info]同时把sql打印一下看有没错当你那2个控件返回的文本带有空格之类的时候,就查不出来了
      

  8.   

    问题找到了,我先用Trim函数先对Combo1.Text和Text1.Text处理,去掉空格。
    SQL语句第2个单引号多了个空格,应改为:
    SQL="select * from  info where " & Combo1.Text & "= '" & Text1.Text & " ' "谢谢各位啦。结帖!!