在模块中将子表单引用为变量

时间:2015-10-02 14:28:46

标签: ms-access access-vba ms-access-2007 ms-access-2010 ms-access-2013

我一直在使用模块将表单和控件的名称作为变量来更改表单上控件的属性。例如:

Sub mySub(formName As String, controlName As String)

    Forms(formName).Controls(controlName).ForeColor = Colour.RedDark

End Sub

我也希望对子窗体上的控件上的属性执行此操作,但是也无法弄清楚语法也将子窗体也称为变量。

我认为它可能是这样的:

Forms(mainFormName).Form(subFormName).Controls(controlName).ForeColor = Colour.RedDark

...但这不起作用(对象不支持此属性或方法)。

1 个答案:

答案 0 :(得分:1)

My Access 2010无法识别名为 ForeColour 的控件属性;但 ForeColor 有效。 (我不知道这里是否涉及语言环境问题,但我的语言环境是美国英语。)

除此之外,我认为您正试图通过.Form(subFormName)属性访问 ForeColor 。而不是那样,引用子表单 control ,并从那里引用其包含的子表单中的目标控件。

在此工作示例中, Form12 包含名为 Child0 的子窗体控件。子窗体控件包含一个名为 fsub2 的窗体,该窗体又包含一个名为 txtMemo_field 的文本框。但请注意子语句的名称(表单名称而不是包含它的控件)不会出现在此语句中:

Forms("Form12").Controls("Child0").Controls("txtMemo_field").ForeColor = vbBlue