我在做一个抽奖程序。
把数据库的人事表(tab)里的员工编号(nb)调出来,
在timer控件里循环显示跳转,但显示不了。时间控件程序
Private Sub Timer1_Timer() 
cn.Open ConnectStringd
sqla = "select nb from tab"
rs.Open sqla, cn, 1, 1
Do While Not rs.EOF
   For i = 0 To 6
  tsfd(i).Text = Mid(rs![nb], i + 1, 1)
 '把nb的第i个字符放到第i个文本框里,
 以实现号码滚转并把数字显示在text里。
   Next i
rs.MoveNext
Loop
rs.Close
cn.Close
End Subtsfd(i).Text = Mid(rs![nb], i + 1, 1)Private Sub Command1_Click()'抽奖开始按钮
Timer1.Enabled =true
end sub

解决方案 »

  1.   

    Do While Not rs.EOF
       For i = 0 To 6
      tsfd(i).Text = Mid(rs![nb], i + 1, 1)
      DoEvents'加上这个
     '把nb的第i个字符放到第i个文本框里,
     以实现号码滚转并把数字显示在text里。
       Next i
    rs.MoveNext
    Loop
      

  2.   

    但是在测试用随机函数时,这样可以跳转。
    程序应该在打开数据库后,循环时出了问题。
    Private Sub Timer1_Timer()
    For i = 0 To 6
    tsfd(i).Text = CStr(Int(10 * Rnd))
    Next i
    end sub
    请帮忙看下,指出问题,谢谢。。
      

  3.   

    午夜逛街,DoEvents,应该怎么加?
      

  4.   

    行了,历害啊,高手!
    DoEvents主要是做什么用的?
      

  5.   

    就是转让控制权,你查一下MSDN,有详细说明
      

  6.   

    Private Sub yes_Click() '开始抽奖按钮
    Timer1.Enabled = True
    End SubPrivate Sub stop_Click()  '结束抽奖按钮,并指定一个用户中奖!
    Timer1.Enabled = False
    tsfd(0).Text = 1
    tsfd(1).Text = 2
    tsfd(2).Text = 3
    tsfd(3).Text = 4
    tsfd(4).Text = 5
    tsfd(5).Text = 6
    tsfd(6).Text = 7
    MsgBox "老孟中奖,QQ一辆!", vbExclamation + vbOKOnly, "系统提示"
    End Sub
    这是我以上的全部程序,但当按停止按钮后,有时TEXT里仍会跳转,且不是显示的指定1至7,有时就不会这样直接显示1至7出来,错在哪了?
      

  7.   

    我就是想当用户按停止按钮时,就停止跳转,并在TEXT里显示指定的数字1-7出来。
    但以上的程序,有时会,有时不会,是出在什么问题了?
    估计还是这个DoEvents。
      

  8.   

    给你一个玩玩:
    ftp://csjwg:[email protected]/抽奖程序.zip