新手请叫各位大侠一个弱智的问题,在进行数据查询的时候,能否在取出一条数据之后让指针停留一段时间后再取下一条记录啊?或者实现在从数据库中读出数据并且显示到MSFlexgrid控件的相应的单元格中时候实现按行来填充数据的效果,不要一次性填充11行的记录大哥,似乎用你说的方法可以实现上面的效果,但是发觉DoEvents函数在让出操作系统的控制权方面难以控制
谁能帮忙调一下啊~~
Private Function read_display()'从数据库中读出数据并且显示到MSFlexgrid控件的相应的单元格中For i = 0 To 10 Step 1 '每次取出11条记录,并显示到MSFlexgrid控件的相应的单元格中
     If rs1.EOF = False Then
        If rs1.Fields(0) <> "" Then
            'DoEvents
            MSHF.TextMatrix(i, 0) = rs1.Fields(0)
            'DoEvents
        End If
        If rs1.Fields(1) <> "" Then
            'DoEvents
            MSHF.TextMatrix(i, 1) = rs1.Fields(1)
            'DoEvents
        End If
        If rs1.Fields(2) <> "" Then
            'DoEvents
            MSHF.TextMatrix(i, 2) = rs1.Fields(2)
            'DoEvents
        End If
        If rs1.Fields(3) <> "" Then
            'DoEvents
            MSHF.TextMatrix(i, 3) = rs1.Fields(3)
            'DoEvents
        End If
     End If
     
     If rs2.EOF = False Then
        If rs2.Fields(0) <> "" Then
            'DoEvents
            MSHF.TextMatrix(i, 4) = rs2.Fields(0)
            
        End If
        If rs2.Fields(1) <> "" Then
            'DoEvents
            MSHF.TextMatrix(i, 5) = rs2.Fields(1)
            
        End If
        If rs2.Fields(2) <> "" Then
            'DoEvents
            MSHF.TextMatrix(i, 6) = rs2.Fields(2)
            
        End If
        If rs2.Fields(3) <> "" Then
            'DoEvents
            MSHF.TextMatrix(i, 7) = rs2.Fields(3)
            
        End If
     End If
     
     'DoEvents
     
     rs1.MoveNext
     If rs1.EOF = True Then
          rs1.MoveFirst
     End If
     
     rs2.MoveNext
     If rs2.EOF = True Then
          rs2.MoveFirst
     End If
     
     
     DoEvents
     
Next
End Function似乎上面的DoEvents函数所放的位置都能实现我希望有的功能,但是只是我在下面的timer控件中调用该函数时不能把所有的数据都显示出来Private Sub Timer1_Timer()                      '定时器函数Timer1_Timer(),实现分时间段显示显示数据库中数据
   Dim dateTmp As Date                          '定义定时器的时间
   'Dim data2 As Date
   dateTmp = Now()
   If DateDiff("s", date1, dateTmp) = 5 Then
     Call read_display                               '调用xunhuan函数,从数据库中读出数据并且显示
    date1 = dateTmp
   End If
   'data2 = Now
   'If data2 = #8:05:00 PM# Then
   'End
   'End If
End SubPrivate Sub wait()'也可在上面DoEvents处用这个等待函数替代控制等待的时间               
    Dim dblEndTime As Double
    dblEndTime = Timer + (需要等待的秒数)
    Do While dblEndTime > Timer
      '不做任何事情,仅仅允许
      '其它应用程序处理它们的事件。
      DoEvents
    Loop
End Sub
哪位能帮忙调一下啊~~~
在线等,谢谢~~~

解决方案 »

  1.   

    我想要达到数据的刷屏效果。就是按行刷新。有一种特效。一行一行显示。每行之间有大概0.2秒间隔。这些数据都是从数据库中取出来的。有时用DoEvents只能刷新很少的几屏就停下来了。我也不知道是什么原因。哪位高手指点一下。谢谢。应当怎样处理DoEvents?????
      

  2.   

    在显示记录之间加以下延时循环
    dim longtick
    longtick=gettickount()
    while gettickcount-longtick<200 
    wend还需调用gettickcount的API函数
      

  3.   

    啊~~~
    那怎么实现啊,API我不是很熟啊~~能不能说得具体啊
      

  4.   

    SLEEP怎么用啊 ,sleep我用上去似乎和time控件冲突,调试的时候显示CPU录用率98%
      

  5.   


    我的这个函数经常用,献给你了,他能解决您的CPU占有率仅达到0.1%。因为sleep函数的占有率几乎吃掉了全部CPU,因而才写了这个函数。Public Sub Sleep_yh(TimeSecond As Integer) 'TimeSecond暂停时间秒
            Dim nowTime
            nowTime = Timer
            Do While Timer < nowTime + TimeSecond '等待TimeSecond秒
                DoEvents ' 将控制让给其他程序。
            Loop
    End Sub