需求:前台窗台的事件代码保存在后台类库文件的模块中,实现保护代码的目的,前台窗体可允许自己排版或添加些辅助功能,就象UMV平台的AccDev文件中的前台窗体一样。我尝试了一下,由于窗体按钮的单击事件需引用控件,在前台直接用ME.控件名就可以实现了,在后台,这样用,是无法通过编译的。怎么办呢?
今天有空想了下,EXCEL中有当前工作簿和工作表对象,ACCESS中应该有当前活动窗体对象,有帮助中,录入“ACTIVEFORM”,搜索果然有。看了下说明,一测试,还真能解决这个问题。帮助内容如下:
ActiveForm 属性
使用 ActiveForm 属性(和 Screen 对象一起)可以标识或引用获得焦点的窗体。Form 对象,只读。
expression.ActiveForm
expression 必需。返回“应用于”列表中的一个对象的表达式。
设置
该属性设置含有一个对运行时获得焦点的 Form 对象的引用。
该属性仅在使用宏或 Visual Basic 时才可用,并且在所有视图具有只读属性。
说明
可以使用 ActiveForm 属性来引用活动的窗体和它的一个属性或方法。下面的示例显示活动窗体的 Name 属性设置:
Dim frmCurrentForm As Form
Set frmCurrentForm = Screen.ActiveForm
MsgBox "Current form is " & frmCurrentForm.Name
如果子窗体获得焦点,则 ActiveForm 将引用主窗体。在使用 ActiveForm 属性时,如果窗体或子窗体没有获得焦点,将产生错误。