在我的MS Access应用程序中,我使用的表单只包含两个控件 - 文本框和命令按钮。此表单的名称为HEADER FORM
。
HEADER FORM
用作各种其他表单的标题部分中的子表单。
我想要做的是,无论何时加载特定表单,我都希望在HEADER FORM
的文本框中填写详细信息(这将是已登录人员的姓名。同样可以从下图)。
我试图在所有表单的表单加载事件中调用名为updateHeader
的全局子例程。
Public Sub updateHeader()
Me![HEADER FORM].Form.txtHeaderName.Value = strPerson
End Sub
以下是在设计视图中显示HEADER FORM
的图片,同样用作登录表单中的子表单。
我尝试了其他各种选项,但我无法找到正确的方法来引用表单。我从根本上做错了吗?
我看到的错误是使用Me
关键字无效。
此外,我的updateHeader
子例程是一个全局子程序,它从所有表单的Form_Load事件中调用。
答案 0 :(得分:3)
如果您的updateHeader()
程序包含在标准模块中,则可以解释有关Me
关键字的投诉......它在标准模块中无效。
在表单模块中,Me
表示“此表单”。
您可以更改过程声明以接受对表单的引用。
Public Sub updateHeader(ByRef TheForm As Form)
' Me![HEADER FORM].Form.txtHeaderName.Value = strPerson
TheForm![HEADER FORM].Form.txtHeaderName = strPerson
End Sub
.Value
是默认属性,因此这里不需要,所以我把它留了出来。但如果您愿意,可以将其添加回来。
然后,您可以从父窗体调用该过程,并将该过程传递给它自己(父窗体)。
updateHeader Me
答案 1 :(得分:0)
我得到了这些"语法版本"来自Wiley.Microsoft.Office.Access.2007.Bible: 引用子窗体控件时:
<强>表单![窗体名称]![SubformName] .FORM![控件名称] 强>
在子表单中使用/引用子表单时,请使用以下语法: 的窗体![窗体名称]![SubformName] .FORM![SubSubformName] .FORM。[控件名称] 强>