Ms access 如何使用Form_Timer事件强制退出具有循环的VBA代码

Ms access 如何使用Form_Timer事件强制退出具有循环的VBA代码,ms-access,vba,Ms Access,Vba,我有一个MS Access代码,带有Do While循环,用于IE导航以获取数据。导航没有问题,但导航代码在一段时间后进入睡眠模式(即没有url导航) 现在我想使用Form_timer事件在5分钟后重新启动VBA代码。我正在使用下面提到的代码,但是在第一次运行之后,Form_计时器代码没有正常运行,因为主VBA代码处于睡眠模式 需要关于我的代码的建议,以便我能够停止正在运行的代码,然后根据计时器值重新启动它 Sub Form_Timer() getdata End Su

我有一个MS Access代码,带有Do While循环,用于IE导航以获取数据。导航没有问题,但导航代码在一段时间后进入睡眠模式(即没有url导航)

现在我想使用Form_timer事件在5分钟后重新启动VBA代码。我正在使用下面提到的代码,但是在第一次运行之后,Form_计时器代码没有正常运行,因为主VBA代码处于睡眠模式

需要关于我的代码的建议,以便我能够停止正在运行的代码,然后根据计时器值重新启动它

Sub Form_Timer()

    getdata       

End Sub

现在我解决了我的问题后,改变代码和添加ie.state签入如果条件的Do循环,在这个改变后,现在定时器是工作perperperly。我使用下面提到的上述问题的解决办法

if ie.readystate=ReadyState_Uninitilized or rowcount>maxid then exit do

Exit Sub
将退出当前的
Sub Form\u Timer()
,而不退出其他内容。这不能像你所希望的那样工作。是的,如果可能的话,它也在做同样的事情,如果有任何选项,我将能够停止getdata代码…谢谢。如果你打算跳出计时器循环,并且不希望它重复,那么在退出sub之前添加“Me.TimerInterval=0”。是的,Andre是正确的,您的“getdata”和iminutes=0将永远不会被执行,因为您在它们可以执行之前就退出了。计时器循环中没有问题,getdata循环中的问题是在一些导航没有响应之后。所以我想停止获取数据,然后使用计时器值重新启动。您可以发布您的getdata代码,以便我们有一个清晰的画面吗?我不明白你的“睡眠模式”是关于什么的你还没有解决你上面发布的代码。代码将要做的唯一一件事是每次输入时将imenuts设置为1。它永远不会重置iMinutes,也不会执行“getdata”。iMinutes必须是“表单级别”变量,否则输入时它将始终为零。将窗体计时器设置为1000,添加调试。在添加1后打印iMinutes,并将MSGBOX替换为“getdate”。将始终为iTimer显示1,您将永远不会收到消息。现在我编辑我的代码,我只使用time_interval=1000,并使用上述代码解决我的问题。