首先 select count(*) ... ,判断是否为0

解决方案 »

  1.   

    只要检测记录集的数据数目就可以了,不需要格外的select Count(*) as ### from ###
      

  2.   

    DIM SC AS ADO.RECORDSET
    sc.open "select * from tablename where Fieldsname=''" ,cn
    if sc.eof and sc.bof then
       msgbox "没有记录存在!!"
    else
       '显示记录
    endif
      

  3.   

    Dim rs As ADODB.Recordset
    Dim mSQL$
    mSQL = "select * from tb_my where Id=1"
    rs.Open mSQL, actconn
    If rs.EOF Or rs.BOF Then
        '无记录
        Exit Sub
    Else
        '.....
    End If
      

  4.   

    TO:htu(黄土)你说错了吧!用 OR 不行吧!!1
      

  5.   

    SORRY,我打错误了,应用AND 谢谢cqq_chen的提醒
      

  6.   

    微软提供的文档中说明判断结果集是否为空应该判断Bof与Eof属性是否同时为True,如果同时为True则表示结果集为空。
      

  7.   

    基本同意cqq_chen的做法。
    如果使用count,得到的结果>0,那仍然需要再打开一次记录集,开销增大;
    但是如果这是个很大的记录集的话,先使用count判断会比较好。
      

  8.   

    为什么没有人用recordcount呢,我一直在用,从来没有出错,效率也可以
    rs.open "select * from mytable where ..."
    if rs.recordcount >0 then
        ....
    else 
        msgbox "无纪录"
    endif
    rs.close
      

  9.   

    为什么没有人用recordcount呢,我一直在用,从来没有出错,效率也可以
    rs.open "select * from mytable where ..."
    if rs.recordcount >0 then
        ....
    else 
        msgbox "无纪录"
    endif
    rs.close
      

  10.   

    to fishzone(阿愚) :我用dao时recordcount不能返回真正的记录数
      

  11.   

    使用DAO的时候需要movelast,然后movefirst就可以用recordcount了,其实使用EOF也可以。
      

  12.   

    是ADO的recordcount,我也一直用都没错
    都是某些书的误导,说是会错,又没说怎么样错,害得很多人都不敢用
    我都用三年了还没发现有错,真是汽油吃力