1

我一直在使用模塊來獲取窗體和控件的名稱作爲變量來更改窗體上控件的屬性。例如:引用子模塊作爲模塊中的變量

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

My Access 2010無法識別名爲的控件屬性ForeColour;但ForeColor有效。 (我不知道是否有這裏涉及到一個區域的問題,但我的語言環境是美國英語)比

其他,我想你想通過.Form(subFormName)屬性來訪問前景色。取而代之的是,參考子表格控制,並從那裏目標控件在其包含的子窗體。

在此工作示例中,Form12包含一個名爲Child0子控件。子窗體控件包含一個名爲fsub2的窗體,窗體依次包含一個名爲txtMemo_field的文本框。但請注意子表單的名稱(表單名稱不包含它的控件)不會出現在此語句中:

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

好眼睛在「ForeColour/ForeColor」。 Intellisense並沒有在這個級別觸發,我來自英國,因此這個錯誤。 –

+0

我花了一段時間才發現。轉折點是'? Forms!Form12!Child0!txtMemo_field.ForeColour'給了我你所報告的相同的「不支持」錯誤。當我終於注意到'ForeColour'和'ForeColor'我現在提到這一點,因爲我認爲'Forms!FormName!SubformControl!TextBox.Property'可以用於'Forms()',Controls() ',物業方法。這是給我的。 :-) – HansUp