【问题标题】:What happens to statements after DoCmd.Close?DoCmd.Close 之后的语句会发生什么?
【发布时间】:2020-04-29 09:39:05
【问题描述】:

写在DoCmd.Close 语句之后的语句会发生什么?它们是在关闭之前执行的吗?

Private sub aaaaa ()
  DoCmd.Close
  DoCmd.Openform "frmA"
  Run xxx
End Sub

frmA打开了吗?

子过程xxx被执行了吗?

【问题讨论】:

  • 是的,表单打开并运行子程序。我只是想了解与表单相关的逻辑上发生的事情 - DoCmd.Close 之后的事件。

标签: vba ms-access ms-access-forms


【解决方案1】:

DoCmd.Close - 将关闭在 MS Access 中打开的活动对象,并在有任何未保存的更改时要求确认。 查看官方documentation 的参数传递给Close 方法。

您可以使用 Close 方法关闭指定的 Microsoft Access 窗口或活动窗口(如果未指定)。

如果将 ObjectType 和 ObjectName 参数留空(默认常量 acDefault 假定为 ObjectType),Access 将关闭活动窗口。如果您指定 Save 参数并将 ObjectType 和 ObjectName 参数留空,则必须包含 ObjectType 和 ObjectName 参数的逗号。

frma打开了吗?

是的,它会打开名为“frmA”的表单。

子过程xxx执行了吗?

是的,它将继续执行下一个过程。

【讨论】:

  • 我接受这一点,测试表明它确实有效。但是,有人可以解释从执行 DoCmd.Close 语句到表单实际关闭的事件。
  • 请检查更新的答案,如果有帮助请告诉我。
  • 不,我已经阅读(并且可能理解)官方文档。但是,它没有回答我的问题。让我试着重新措辞一下。如果我有一个只有一个语句 DoCmd.Close 的过程,则表单会立即关闭。如果在执行 DoCmd.Close 语句后我还有更多语句,则表单不会关闭。这是否意味着表单在到达 End Sub 语句之前不会关闭(在包含 DoCmd.Close 语句的 sub 中)?
猜你喜欢
  • 2013-08-17
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 1970-01-01
  • 2022-08-14
相关资源
最近更新 更多