做不到,因为打开TABLE或者执行SQL查询的进程不返回进度事件,大多数打开表或者执行SQL查询的进程都非常快,你可能指的是遍历所有记录,那有很多种方法

解决方案 »

  1.   

    提供思路。
     如果,你要将查询的结果记录一条一条的返回,则思路同  zhenxizhou(追忆) 将查询的结果条数分成二十份(当然也可五十份),每返回一份记录(二十分之一的总记录条数),进度条前进一格(5%)。(实际上这种时间进度并不是真正查询记录的时间进度,只是一种模拟:)
      如果,只需返回记录的条数。就不好捕获或时间进度了。
      

  2.   

    从一个formB关闭后,FormA得到焦点,formA重新计算数据给其上的Grid,这时FormA有那种很慢的延迟现象。我就想,先让一个进度条来等待一下,进度条关闭后再让grid显示出数据(就是条件都具备了,才让grid显示)这样做是否可行?下面是我问过的的问题:
    http://expert.csdn.net/Expert/topic/1227/1227220.xml?temp=.4680445
      

  3.   

    你这个用进度条提示想法肯定可以,但我觉得要做到真正在时间上平滑的进度条很困难,君不见微软自己的都不平滑。
        所以最常用的方法就是前面各位提到的用数据库的记录数来模拟:
    比如:
        intStep=CInt(ADORS.Recordset.Count/ProgressBar.Max)
        之后在检索中可以这样使用:
        Do While Not ADORs.EOF
           '这里写数据库访问代码
           intCount=IntCount+1
           If intCount=intStep Then
              intCount=0
              If ProgressBar.Value<ProgressBar.Max
              ProgressBar.Value=ProgressBar.Value+1
           End if
        Loop
        大概这样吧,这样写主要是避免每次引用ProgressBar影响性能,但好像还有改进的地方,希望高手指点。