单击父窗体时不会触发访问 VBA 子窗体事件

Posted

技术标签:

【中文标题】单击父窗体时不会触发访问 VBA 子窗体事件【英文标题】:Access VBA subform event wont fire when parent form clicked 【发布时间】:2009-07-01 00:40:37 【问题描述】:

好的,我在父窗体上有几个控件,还有一个子窗体。用户在子表单中输入数据。然后当他们点击子表单时,我有代码来验证他们的数据。然而,MS 以其无限的智慧,选择在用户单击父窗体上的另一个控件(而不是父窗体本身)之前不让焦点离开子窗体,这对用户来说非常烦人。

基本上,我要做的就是在允许用户继续下一个控件之前验证子表单中的数据,即使用户单击父表单本身也是如此。这可能吗?

【问题讨论】:

【参考方案1】:

您可以在您使用的子窗体控件的“OnExit”事件上执行此操作。

当子窗体上的控件失去对父窗体控件的焦点时,通常会触发“OnExit”事件。它不存在于子窗体本身中,但它是包含子窗体的控件的仅有的两个事件之一。

希望对您有所帮助。

【讨论】:

【参考方案2】:

我认为您将不得不在主窗体上挂钩 Form_Click 事件并对其进行处理。将焦点设置到主窗体上的字段可能会导致子窗体触发具有验证代码的事件。

如果这不起作用,请在主窗体的 Form_Click 上手动触发子窗体上的验证代码,如下所示:

Call Forms!MainForm!Subform.Form.Validate

已经有一段时间了,所以我的 Access VB 有点生锈了,YMMV。

【讨论】:

以上是关于单击父窗体时不会触发访问 VBA 子窗体事件的主要内容,如果未能解决你的问题,请参考以下文章

附实例!实现iframe父窗体与子窗体的通信

c#如何把子窗体的值传给父窗体?

C# 在子窗体调用父窗体的值(转)

附实例!实现iframe父窗体与子窗体的通信

有空delphi子窗体关闭触发父窗体做出一系列改变的操作,主要就是子窗体关闭时能改变父窗体组件状态

有空delphi子窗体关闭触发父窗体做出一系列改变的操作,主要就是子窗体关闭时能改变父窗体组件状态