用一个data控件访问dbf数据库其中包含如下一段:MsgBox(data1.recordset.recordcount)while not data1.recordset.eof
      data1.recordset.movenext
wnedMsgBox(data1.recordset.recordcount)比如说,该dbf中有10条记录
则第一个消息框显示的为1,遍历之后,
第二个消息框显示的才为10换成别的数据库也是这样,第一个总为1
直到第二个才能显示正确的记录个数请教大家

解决方案 »

  1.   

    文档里面不是有说recordcount表示上次操作影响的记录数目么?是你自己的使用方法不对。
      

  2.   

    data1.recordset.movelast
    MsgBox(data1.recordset.recordcount)while not data1.recordset.eof
          data1.recordset.movenext
    wnedMsgBox(data1.recordset.recordcount
      

  3.   

    data1.recordset.moveLast    '移动到最后
    MsgBox(data1.recordset.recordcount)data1.recordset.movefrist  ‘移动到最前
    while not data1.recordset.eof
          data1.recordset.movenext
    wend   'wned  代码写错了你  MsgBox(data1.recordset.recordcount)
      

  4.   

    data1.recordset.movelast
    MsgBox(data1.recordset.recordcount)data1.recordset.MoveFirst
    while not data1.recordset.eof
          data1.recordset.movenext
    wnedMsgBox(data1.recordset.recordcount)
      

  5.   

    就是这个样儿的。当没有遍历记录时,缺省的方法是不取回所有的记录的。这对数据库很大,或者使用远程数据库时非常有益。
    当使用利用服务端的 ADO 连接时,记录数还会保持为 -1。如果你需要在打开记录集时就知道有多少条记录:

    rs.Movelast
    rs.MoveFirst
    MsgBox rs.RecordCount2
    在查询中使用 Order By 子句,可以立即得到记录数。但它是以牺牲查询效率为代价的。