【发布时间】:2011-03-21 15:41:58
【问题描述】:
正如我的问题的标题所暗示的,如何遍历表单中的所有控件,包括子表单。
例如我使用下面的子程序来设置带有标签*的控件的背景颜色
Public Sub colCtrlReq(frm As Form)
' Sets background color for required field -> Tag = *
Dim setColour As String
setColour = RGB(255, 244, 164)
Dim ctl As Control
For Each ctl In frm.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acListBox Then
If InStr(1, ctl.Tag, "*") <> 0 Then
ctl.BackColor = setColour
End If
End If
Next ctl
Set ctl = Nothing
End Sub
如何改变它以捕获子表单中的控件? 在此先感谢您的帮助或指点。
干杯 诺埃尔
【问题讨论】:
-
其他人已经回答了我们的问题,但您确实应该将其更改为:“For Each ctl In frm” -- 改为“For Each ctl In frm.Controls”。表单的默认集合实际上是 Controls 和 Fields 集合的联合,因此您编写的内容可能会产生意想不到的结果。
-
Cheers David 感谢您的建议,已更正上述代码。
-
重新评论 "For Each ctl In frm" -- 我无法使用 Access 2010 重现此问题。
标签: vba ms-access ms-access-2007