问题描述:
正在开发的软件需要检测网络(局域网)状态,写了一个检测的子过程(使用ADO),并在程序界面用timer来不断调用检测网络。运行软件时假设网络为通,timer运行时间为65535毫秒(每隔65秒检测一次网络),当网络由通变断时,timer能够检测出来,并显示网络故障的提示,而当网络由断变通时,却检测不到了。一直还是断的状态。不知道怎么回事,请大家帮忙看一下,在线等!先谢了,下面是具体语句:'TimeSyn模块功能:1.检测网络状态;2.同步服务器时间
Public Sub TimeSyn()
On Error GoTo errorhandle
Dim sqlstr As String
Dim RetCn As ADODB.Connection
Dim RetRs As ADODB.Recordset
Dim SerDate As Date
Set RetCn = New ADODB.Connection
RetCn.ConnectionTimeout = 3
RetCn.Open "Driver={SQL Server};Server=" & ServerName & ";Database=lxsf;Uid=sa;Pwd="
If Connect = True Then
Set RetRs = New ADODB.Recordset
sqlstr = "select getdate() as Nowdate "
RetRs.Open sqlstr, RetCn, adOpenDynamic, adLockOptimistic
If Not RetRs.EOF Then
RetRs.MoveFirst
SerDate = CDate(Format(RetRs.Fields(0).value, "yyyy-mm-dd hh:mm:ss"))
End If
'MsgBox SerDate
Set RetRs = Nothing
Set RetCn = Nothing
Date = SerDate
Time = SerDate
Connect = True
End If
Exit Sub
errorhandle:
Connect = False
Resume Next
End Subtimer过程:
Private Sub Timer1_Timer()
'每隔1.1分钟:1检测网络通断,如果网断,则给出提示(不同步与服务器的时间);2.如果网络通,与服务器时间同步
Call TimeSyn
If Connect = False Then
Label1.caption = "网络故障" '如果网络故障,则屏幕上给出提示
Else
Label1.caption = "" '如果网络通畅,则将提示隐藏
End If
End Sub
正在开发的软件需要检测网络(局域网)状态,写了一个检测的子过程(使用ADO),并在程序界面用timer来不断调用检测网络。运行软件时假设网络为通,timer运行时间为65535毫秒(每隔65秒检测一次网络),当网络由通变断时,timer能够检测出来,并显示网络故障的提示,而当网络由断变通时,却检测不到了。一直还是断的状态。不知道怎么回事,请大家帮忙看一下,在线等!先谢了,下面是具体语句:'TimeSyn模块功能:1.检测网络状态;2.同步服务器时间
Public Sub TimeSyn()
On Error GoTo errorhandle
Dim sqlstr As String
Dim RetCn As ADODB.Connection
Dim RetRs As ADODB.Recordset
Dim SerDate As Date
Set RetCn = New ADODB.Connection
RetCn.ConnectionTimeout = 3
RetCn.Open "Driver={SQL Server};Server=" & ServerName & ";Database=lxsf;Uid=sa;Pwd="
If Connect = True Then
Set RetRs = New ADODB.Recordset
sqlstr = "select getdate() as Nowdate "
RetRs.Open sqlstr, RetCn, adOpenDynamic, adLockOptimistic
If Not RetRs.EOF Then
RetRs.MoveFirst
SerDate = CDate(Format(RetRs.Fields(0).value, "yyyy-mm-dd hh:mm:ss"))
End If
'MsgBox SerDate
Set RetRs = Nothing
Set RetCn = Nothing
Date = SerDate
Time = SerDate
Connect = True
End If
Exit Sub
errorhandle:
Connect = False
Resume Next
End Subtimer过程:
Private Sub Timer1_Timer()
'每隔1.1分钟:1检测网络通断,如果网断,则给出提示(不同步与服务器的时间);2.如果网络通,与服务器时间同步
Call TimeSyn
If Connect = False Then
Label1.caption = "网络故障" '如果网络故障,则屏幕上给出提示
Else
Label1.caption = "" '如果网络通畅,则将提示隐藏
End If
End Sub
解决方案 »
- 请问如何实现点击combobox的编辑框时就显示下拉表单?而不用点下拉箭头
- 打开其它程序
- 水晶报表高手请进来,小弟求救..........高分求问(在线等)...
- 各位DX,如何设置打印出来的文字颜色
- 关于用winsock作文件下载的问题
- 定时器(timer)是怎么样写程序
- 请问如何使标题栏,不响应双击事件~!?~~~~~~~~~~~~~~~~~~~~~~~~~~~帮忙~~~~~~!!!
- 读取数据请教,谢谢!!!
- 如何快速的得到对方淘宝旺旺是否在线?
- 请各位VB的高手或是菜鸟,留下的你们的联系方式,如QQ或是E-mail,好吗?大家一起交流吧!
- 一个多表查询问题(在线等待,成功马上给分)
- 如何移动picture控件
在ADO里有别的办法吗?
或者不用ado的其他方法也可以,请告知!
Set RetRs = New ADODB.Recordset
sqlstr = "select getdate() as Nowdate "
RetRs.Open sqlstr, RetCn, adOpenDynamic, adLockOptimistic
If Not RetRs.EOF Then
RetRs.MoveFirst
SerDate = CDate(Format(RetRs.Fields(0).value, "yyyy-mm-dd hh:mm:ss"))
End If
'MsgBox SerDate
Set RetRs = Nothing
Set RetCn = Nothing
Date = SerDate
Time = SerDate
Connect = True'''''''网络恢复后也无法执行这一句
End If
=====================================================================
楼主仔细理顺一下流程,你看看当connect=false以后,还有办法执行connect=true这一句吗?
If Connect = True Then 这个条件导致一旦网络断掉,connect=true这一句就永远无法执行了