但我是用 rs.open string 读取数据,并没有用到循环

解决方案 »

  1.   

    我觉得这个好象不行吧,至少应该做不到100%的准确,其实我觉得你只是 想让客户有个视觉的感受而已,没有必要做的很精确的,
     可以改变鼠标的形状或在状态栏加个loading 之类的字样,表示正在忙着。
      

  2.   

    用异步连接
    1、首先声明事件
    Dim WithEvents Rs As Recordset
    2、然后用异步方式打开结果集
       Rs.Open "SELECT * FROM 表", Cnn, , , adAsyncFetch
    3、在读书记录会触发以下事件
    Private Sub Rs_FetchProgress(ByVal Progress As Long, ByVal MaxProgress As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
    '其中Progress:就是当前已取了多少记录
    4、当记录全部取完时,会触发
    Private Sub Rs_FetchComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)在去记录的过程中可以做其他事
      

  3.   

    你可以随时终止:Rstb.Cancel,这时结果集中的记录截止到终止时已取了的记录
      

  4.   

    ADO支持一次读取n条记录,n值可以设定。