你的 Do While 判断明显有问题,你看一下:
Do While DataRs.EOF
         ……………………
Loop意思是只是记录到结尾进才执行。
改成:
Do While Not DataRs.EOF
         ……………………
Loop应该可以。

解决方案 »

  1.   

    搂主看来对ADO了解不够,你现在所使用的方法是建立一个前向临时表,这种临时表的最大特点就是向前滚动速度奇快,缺点多多,主要是不能进行更新,不能往后滚动,并且不能正确获取纪录集条数的值,看样子你的需求用前向临时表是最好的方法,只是有些地方还要注意一下,主要就是获取纪录集条数这一点上,最好用recordset.open 方法获取纪录集,然后返回Recordset.recordcount属性给一个integer型的变量,之后调用这个变量对数据库进行相关操作就行了,还有一种方法是数据获取方式不变,通过循环获取数据,不要以为recordcount=-1就是eof,其实是可以movenext的:)从一开始就计数,一直到 eof 终止,获得的就是最大记录数