Vba 是否有方法模拟从模式/弹出式表单激活的表单

Vba 是否有方法模拟从模式/弹出式表单激活的表单,vba,ms-access,ms-access-2016,Vba,Ms Access,Ms Access 2016,我有一个表单,它打开一个模态弹出帮助器表单来收集一些数据。当此模式弹出窗体关闭时,焦点返回到主窗体。当注意力回到我的主要状态时,我想触发一些活动 根据Microsoft文档,当从模型弹出窗口返回时,表单的事件模型不会触发表单激活或表单焦点事件 这些表单和所有控件都是完全未绑定的 当焦点返回到我的表单时,在代码中知道有什么诀窍吗 如果两个窗体都处于正常模式,则当助手窗体关闭时,Form\u Activate会在主窗体中触发,但这不符合我的需要。我还没有找到一个类似的事件来捕捉这一点。我希望有人能找

我有一个表单,它打开一个模态弹出帮助器表单来收集一些数据。当此模式弹出窗体关闭时,焦点返回到主窗体。当注意力回到我的主要状态时,我想触发一些活动

根据Microsoft文档,当从模型弹出窗口返回时,表单的事件模型不会触发
表单激活
表单焦点
事件

这些表单和所有控件都是完全未绑定的

当焦点返回到我的表单时,在代码中知道有什么诀窍吗


如果两个窗体都处于正常模式,则当助手窗体关闭时,
Form\u Activate
会在主窗体中触发,但这不符合我的需要。我还没有找到一个类似的事件来捕捉这一点。我希望有人能找到解决办法。

为了清楚起见,我遇到的问题是,我在助手窗体中设置了设计时属性,以充当对话框-(弹出窗口和模式为true)。当我打开响应主窗体上按钮单击事件的窗体时,我没有包括
acDialog
选项

如果省略
WindowMode=acDialog
设置,则代码将异步运行,完全完成单击事件处理程序中的代码,而不是停止和等待

acDialog
选项显然强制同步运行
DoCmd.OpenForm
命令,停止代码执行,然后在模式窗体关闭后返回

    Private Sub btnHelper_Click()

        DoCmd.OpenForm "frmHelper", WindowMode:=acDialog

        'Do stuff after frmHelper closes

    End Sub

如何关闭帮助者窗体?您能否捕获助手窗体的
QueryClose
事件,并使用该事件执行主窗体上应该执行的
form\u Activate
操作?您是否可以使用它来临时隐藏helper表单,它将执行返回到最初显示的位置(并且从主表单中的该位置,您可以手动调用
form\u Activate
)?如果您的表单是模态的,然后在
childForm.Show vbModal
关闭
childForm
后立即恢复执行。嗯,是
UserForm
还是“访问表单”?我不确定我是否理解这个问题。两者都有。这只是我在Access中创建的一个表单。没什么特别的,在这种情况下,它实际上被称为frmPermit。它收集与车辆配置文件相关的许可证数据,为了不分散注意力,我将问题的名称改为通用名称。正如您所注意到的,打开表单作为对话框会停止调用代码。弹出式表单是一种完全不同的表单,用于不同的用途,不会停止调用代码。我还应该指出,模型形式也是一种非常不同的形式,有着不同的用途。所以,不要混淆模型、弹出窗口和对话框表单——它们都非常不同,并且用于不同的用途。忽略关于用户表单的建议,因为它们不适用于access。请忽略.show vbModel的示例-它不起作用,也不适用于Access窗体。@AlbertD.Kallal毫无疑问,您的意思是modal/
vbModal
,而不是model。@AlbertD.Kallal FWIW您肯定可以在MS Access VBA中使用“普通”
UserForm
,但您需要自定义VBE工具栏,因为默认情况下它不在那里。”s Code Explorer的“adduserform”命令将UserForm添加到任何VBA主机中的任何VBA项目中。