子窗体控件没有自己的窗体(源对象不是窗体而是表格)。如何设置事件处理程序?
问题描述:
在主窗体中,我以编程方式创建具有表作为其SourceObject的子窗体控件。子窗体控件没有自己的窗体(源对象不是窗体而是表格)。如何设置事件处理程序?
Dim frmNew As SubForm
Set frmNew = CreateControl("01_MAIN_FORM", acSubform, acDetail, strTabDesired, , 200, nBottom + 500, 20000, 3000)
frmNew.Name = "SomeName"
frmNew.SourceObject = "Table.SomeTable"
我的问题是:在容器我只能访问子窗体的OnEnter和的OnExit事件。
我想处理AfterUpdate事件。 如果我将使用Form作为Subform-Control的SourceObject,我可以在那里处理它。 但实际上我想避免创建大量的表单,以便稍后在主表单中链接它们。
有关于此的任何想法?
答
您实际上可以通过“Form”属性引用子窗体事件。 在我的情况
Application.Forms("01_MAIN_FORM").Form("SomeName").Form.AfterUpdate = "SomeMacro"
只要确保包含子窗体控件actally在形式上视图中打开,所以你必须在表单对象的有效引用的形式。