数据库Data表内有数据5条
1,
RS = Conn.OpenRecordset("Data")
Debug.Print RS.RecordCount 2,
Set RS = Conn.OpenRecordset("SELECT * FROM Data")
Debug.Print RS.RecordCount 有这么两种数据打开方式,但是却有不同的结果,1显示正确数据5条,2却显示只有1条,但是当我这么执行后:
Set RS = Conn.OpenRecordset("SELECT * FROM Data")
RSSetting.MoveLast
RSSetting.MoveFirst
Debug.Print RS.RecordCount 
数据就能显示正确了,但是当没有数据的时候MoveFirst方法又不能用,所以有局限性,我需要用第二中方法打开或查询相关数据,并且可以正确显示记录数的方法如何完美实现(不用ADO)数据库2000格式,采用DAO3.6

解决方案 »

  1.   

    用个if语句判断一下就可以了
    if rs.eof then 
    rs.movelast
    else
    .....
    end if
      

  2.   

    那当然了,后者是读取了数据库中的每一条数据,如不用rs.movenext他的游标只定位在第一条!
      

  3.   

    但是当没有数据的时候MoveFirst方法又不能用
    --------------------------------------------------
    先判断以下时候有记录,然后再决定是否Move
        Set rs = Conn.OpenRecordset("SELECT * FROM Data")
        If Not rs.EOF Then
            RSSetting.MoveLast
            RSSetting.MoveFirst
        End If
        Debug.Print rs.RecordCount
      

  4.   

    还有一种办法:
    Set RS = Conn.OpenRecordset("SELECT * FROM Data ORDER BY field1") '一个实际的字段名
      

  5.   

    ;你要是新学VB的话,不如:改用ADO方式进行连接,这样对你,扩展应用面有利。