暂停VBA代码,直到按下另一个访问表单中的按钮

时间:2018-02-06 08:32:23

标签: vba forms error-handling access-vba access

我有一个简单的代码段,用于检查是否存在互联网连接。如果失败,它会进入错误处理程序并打开一个包含一些文本和按钮的简单表单。

这是一个非常复杂的代码(不是我的),我对VBA很新。因此,只需要暂停此函数中代码的执行,并在按下其他表单中的按钮时恢复它。

可悲的是,互联网研究并不是很有用,我还不知道两个不同的代码部分如何相互作用。

这是我迄今为止的代码:

On Error GoTo NoConnnectionErrorHandler
    Dim Request As New MSXML2.XMLHTTP60
    Request.Open "GET", "http://www.bbc.com"
    Request.send
    'MsgBox Request.Status

NoConnnectionErrorHandler:
    DoCmd.OpenForm "Frm_Global_NoConnectionDialog"

当没有连接到互联网时,表格会打开。但是我不知道如何在那里停止代码并在按下另一个表单时按下它。

它会定期检查整个功能(代码片段只是一小部分)。当没有连接时,它应该暂停整个程序,也就是没有更多的代码执行,直到按下按钮,然后再次检查连接,如果有,它应该继续。我希望我解释得很好。

我希望有人可以帮助这个VBA newb:)

EDIT1:答案已经解决了我遇到的问题,但有一件事让我感到困惑的是如何触发"恢复代码执行"通过按钮按下不同的形式。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您应该在错误处理程序(Exit Sub)上方使用NoConnectinoErrorHandler

添加一些代码以确保您的错误已得到解决,然后清除错误并恢复工作。

看看这是否是你要找的:

Sub foo()

    ' Your unseen code ...

    On Error GoTo NoConnnectionErrorHandler
    Dim Request As New MSXML2.XMLHTTP60
    Request.Open "GET", "http://www.bbc.com"
    Request.send
    'MsgBox Request.Status


    Exit Sub    'Put this above your error handler
NoConnnectionErrorHandler:
    DoCmd.OpenForm "Frm_Global_NoConnectionDialog"

    'Some code to ensure error no longer exists....

    Err.Clear
    Resume

End Sub