我的做法:增加一个全局变量,比如叫做:网络状态
NetworkAddressChanged事件代码:
Vars("网络状态") = TryConnectHost(www.jinyt.com)
BeforeLoadOuterTable事件代码:
If TryConnectHost("www.jinyt.com") = False Then
e.Cancel = True
MessageBox.show("对不起,当前网络或服务器不可用,请稍后再加载数据!")
End If
本事件代码,确保了在连接外部数据表的时候,如果网络不通,则暂时不连接,项目启动后,可以通过进入模块的代码再重新动态加载外部数据表,当服务器不可用时,继续忽略动作,不会链接。
【注】:本事件不能用全局变量,系统启动时全局变量还没有生成,会导致系统错误打不开。
BeforeSaveProject事件代码:
If Vars("网络状态") = False
e.Cancel = True
MessageBox.show("对不起,当前网络或服务器不可用,请稍后再保存数据!")
End If
这个事件的代码,保证了在保存项目之前,如果网络不通,将自动禁止不保存,也就不会报错了。
采用这种方法的优点:全局变量的值就是您想要知道的网络是否可用,您没有必要不断地采用定时器去检查服务器是否可用,因为那样做,是需要占用时间的,计划或窗口定时器过于繁重的代码或检测远程服务器是否可用,是会导致系统出现卡顿现象的!