我的库中的表只有板有3条记录,每次运行他都会提示eof或bof一个为真,当我把
Set rs = conn.Execute("select * from stu where no ='" & txt_no.Text & "'")中txt_no.text直接改为2还是查询不出来,我的库中字段no为关键字,3条记录的no分别为1.2.3
Private Sub Form_Load()
Me.cmbminzu.AddItem "han"
Me.cmbminzu.AddItem "han"
Me.cmbzhicheng.AddItem "jiaoshou"
Me.cmbzhicheng.AddItem "gongren"
'使屏幕出来直接?示在屏幕中央
Form1.Left = (Screen.Width - Form1.Width) / 2
Form1.Top = (Screen.Height - Form1.Height) / 2
Set cmd = New Command
Set rs = New Recordset
Set conn = New Connection
'?接数据?
conn.ConnectionString = "DSN=kk;uid=;pwd="
Dim year As Integer
conn.Open
Set cmd.ActiveConnection = conn
Set rs = conn.Execute("select * from stu where no ='" & txt_no.Text & "'")
txt_no.Text = rs.Fields("no")
txt_name.Text = rs.Fields("name")
year = Format(Now, "yyyy")
txt_brithday.Text = year - Format(rs.Fields("brithday"), "yyyy")
txt_pay.Text = rs.Fields("pay")
Me.cmbzhicheng.Text = rs.Fields("zhicheng")
Me.cmbminzu.Text = rs.Fields("minzu")
rs.Close
conn.Close
End Sub

解决方案 »

  1.   

    select * from stu where no ='" & txt_no.Text & "'"
    请确认no字段是否是字符型的,如果不是就用:
    select * from stu where no =" & txt_no.Text
      

  2.   

    NO字段为整型
    select * from stu where no =int(" & txt_no.Text &")
      

  3.   

    no字段是字符形的啊所以我用的是
    Set rs = conn.Execute("select * from stu where no ='" & txt_no.Text & "'")
    他总是抱eof或bof有一个为真的错啊 !
      

  4.   

    Set rs = conn.Execute("select * from stu where no ='" & trim(txt_no.Text) & "'")
      

  5.   

    if rs.EOF and rs.BOF Then
        The Recordset is empty
    end if
      

  6.   

    eof或bof有一个为真,就是没有符合条件的,记录值为空,可以加一个判断
      

  7.   

    这样试试:
    select * from stu where stu.no='" & trim(txt_no.text) & "'"
      

  8.   

    http://www.china-askpro.com/msg21/qa32.shtml
    看看这个贴子就知道了
      

  9.   

    毛毛," & trim(txt_no.text) & "我把他直接换成'2'然后
    txt_name.Text = rs.Fields("name")
    name是库中的一个字段,这样都查询不出来,还是抱eof or bof出错!还有,我在库中的no就是字符形~!还忘大家帮忙,我也知道是没有符合的记录,但是判断怎么加?
      

  10.   

    你用什么数据库?你可以把sql语句在数据库的查询器(access、查询分析器等)上执行一下看看。
      

  11.   

    access我用的是这个,现在还没找到access上的查询分析起,以前只用过sqlserver的分析起!!!!!!
      

  12.   

    你可以用“查询”:
    在数据库窗体中左边树有一个“查询”项,选它。点“在设计视图中创建查询”,然后加入你的表,在窗体上右击点“SQL视图”,在那里写
      

  13.   

    所有的努力我都做了,最后我把库换成了SQlserver就还是我原来的程序通过拉,但是为何用access就不能通过呢?我想问问!
      

  14.   

    首先你应该知道这句报错信息的意思,即然提示“eof或bof一个为真”那就可以排除掉上面朋友们的说法了,什么数据类型啦,过掉两边空格都没有关系的,因为这已经能够执行查询指令了,你现在要搞明白这句话的意思就可以了。
       
        EOF,是指数据库的记录指针已经达到了最后一个记录的后面,也就是说数据集为空啦
        BOF, 是指数据库的记录指针处在了第一个记录的前面    很明显,你的查询语句没有查找到满足条件的记录,你可以作一个判断,不满足的时候执行什么(比如提示没有找到,相应的文本框清空等等),满足的时候再给相应的文本框赋值。
      

  15.   

    conn.Open
    Set cmd.ActiveConnection = conn
    Set rs = conn.Execute("select * from stu where no ='" & txt_no.Text & "'")
    if rs.eof or rs.bof then    txt_no  = ""
        txt_name = ""
        txt_brithday = ""
        txt_pay = ""
        cmbzhicheng.text = ""
        cmbminzu.text = ""
    else    txt_no = rs.Fields("no")
        txt_name = rs.Fields("name")
        year = Format(Now, "yyyy")
        txt_brithday = datediff("yyyy",now,rs.Fields("brithday"))
        txt_pay = rs.Fields("pay")
        cmbzhicheng.Text = rs.Fields("zhicheng")
        cmbminzu.Text = rs.Fields("minzu")
    end ifrs.Close
    conn.Close
      

  16.   

    谢谢各位老师的帮忙,特别是smile8088() 和 sinom(毛毛.小狮子>>苦学ORACLE) 
    再次感谢,还有一个问题,可以推荐一个地址让我学习水晶报表的地方吗?以前我从来都没有接触过水晶报表,现在要用到!!!!!