机房收费系统主窗体上有一项是显示在线人数的,刚开始自己的理解是:上机了就有了在线记录,通过SQL语句的读取,再通过Label去显示数据库表中在线的记录数,同时下机的时候,删除相应的在线记录,并且同通过SQL语句再次去读取,然后Label显示下机后的人数。可是当同时打开两个登录窗体的时候,问题出现了,在没有输入登录卡号的时候,根本不显示在线人数,只有当点击上机的时候,才会出现,这样的话管理者根本不易看到在线人数,后经师傅的提点,明白了Label显示上机人数是与上机和下机无关的操作,可以通过Timer事件来实现。
利用Timer事件定时读取数据库里在线表的记录,并通过Label显示出现,代码如下:
Private Sub Timer2_Timer() '利用timer事件定时读取在线记录数
Dim Txtsql As String
Dim Msgtext As String
Dim reOn As ADODB.Recordset
Timer2.Interval = 1000 '设置间隔时间为1s,即每一秒钟读取一次
Txtsql = "select * from onLine_info "
Set reOn = ExecuteSQL(Txtsql, Msgtext)
Label17.Caption = reOn.RecordCount '显示在线人数
End Sub
这样Label显示上机人数记录与上机和下机就无关了,由Timer定时读取~