【问题标题】:Halt code until button press in another Access form暂停代码,直到在另一个访问表单中按下按钮
【发布时间】:2018-07-16 06:06:42
【问题描述】:

我有一个代码 sn-p 可以检查是否有互联网连接。如果失败,它会进入错误处理程序并打开一个带有一些文本和按钮的表单。

这是一个非常复杂的代码(不是我的)。

我想暂停该函数中代码的执行,并在按下其他表单的按钮时恢复它。

互联网研究没有帮助。我不知道两个不同的代码部分如何交互。

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"

当没有连接到互联网时,会打开一个表单。当按下另一种形式的按钮时,如何停止代码并让它恢复?

它会定期检查整个函数(其中 sn-p 只是一小部分)并检查。
当没有连接时,它应该停止整个程序,直到按下按钮,然后再次检查连接,如果有连接则继续。

编辑:答案解决了这个问题,但让我感到困惑的一件事是如何通过按下按钮从不同的表单触发“恢复代码执行”。

【问题讨论】:

  • 如果您的表单停止代码,一旦您关闭表单,它将自动在提供的答案中点击您的Resume 语句。除了在您解决问题时停止它之外,该表单无需执行任何操作来恢复代码执行。抱歉,我无法为您提供更多信息,因为我对您的表单的具体功能一无所知。
  • 如果你把它放在你的表单中打开它,它会停止代码执行Me.Show vbModal,如果这是你问的。 Me 是您的用户表单。 Here is more information on this subject.
  • @K.Dᴀᴠɪs Oke,谢谢伙计,我会试试这个!
  • @K.Dᴀᴠɪs 好吧,这似乎有效。但另一个问题。如何在特定行恢复? Microsoft Docs 非常不具体,“Resume 1150”不起作用它说我需要定义一个跳转标记或类似的东西
  • NoConnectionErrorHandler: 所做的相同。只需将其命名为其他名称。它使代码有点草率,但这就是它所要求的。因此,您可以添加一行 ResumeFromError1: 或任何您想调用的名称。

标签: vba forms ms-access error-handling


【解决方案1】:

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

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

看看这是不是你要找的东西:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 2021-10-08
    • 2022-01-10
    相关资源
    最近更新 更多