Access 2007 / VBA - 多个表单实例,从模块更新特定实例的控件

Posted

技术标签:

【中文标题】Access 2007 / VBA - 多个表单实例,从模块更新特定实例的控件【英文标题】:Access 2007 / VBA - Multiple Instances of Form, Update controls on specific instance from Module 【发布时间】:2016-10-09 05:20:36 【问题描述】:

我正在使用 Allen Browne 的方法来创建和管理表单的多个实例。我被困在如何从 VBA 模块引用表单的特定实例上的控件或属性。以下是我打开新实例的方法:

'Purpose:    Open an independent instance of form frmMasterRecord.
Dim frm As Form

'Housekeeping
myFilter = Trim("" & myFilter)

'Open a new instance, show it, and set a caption.
Set frm = New Form_frmMasterRecord
frm.ServerFilter = myFilter
frm.ServerFilterByForm = True
frm.Requery
frm.Visible = True

'Append it to our collection.
clnMasterRecord.Add Item:=frm, Key:=CStr(frm.hwnd)

Set frm = Nothing

假设我打开了三个 frmMasterRecord 实例。如何在模块中调用子/函数并让它仅在表单的调用实例上操作控件?

【问题讨论】:

你试过的代码是什么? 【参考方案1】:

传递对调用表单的引用:

Result = MyExternalFunction(Me)

Public Function MyExternalFunction(ByRef frm As Form) As Boolean

    ' Do stuff with object frm.

    MyExternalFunction = Result

End Function

【讨论】:

以上是关于Access 2007 / VBA - 多个表单实例,从模块更新特定实例的控件的主要内容,如果未能解决你的问题,请参考以下文章

Access 2007 拆分表单 VBA:打开时 acNewRec 可防止在表单中跳动 - 就像第一个字段未“选择”一样

在Access 2007 VBA中,未保存的表单和报表是否可以键入为“AccessObject”..?

通过 VBA 在 Access 2007 中运行以相同单词开头的多个查询

Access 2007 VBA:构建一个列表框,其中包含来自另一个列表框的选择选项

Access 2007 可以在直接将数据上传到表后触发 VBA 代码吗?

访问 2007 VBA DoCmd.Close 不起作用