我想循环遍历表单上的所有 UNBOUND 控件并清除它们的数据或重置它们的值。我有文本框、组合框和复选框。每次我尝试这样的事情:
Dim ctl As Control
For Each ctl In Me.Controls
If IsNull(ctl.ControlSource) Then
ctl.Value = Nothing
End If
Next ctl
我收到运行时错误:
438 该对象不支持该属性或方法。
该代码循环通过every表单中的控制Controls
收藏。该集合包括控件,例如标签和命令按钮,它们既没有绑定也没有未绑定......因此尝试引用它们.ControlSource
产生该错误。
对于诸如未绑定文本框之类的控件,其.ControlSource
属性是一个空字符串,而不是 Null。
因此,当您循环遍历控件时,请检查.ControlSource
仅适用于您希望定位的那些控件类型。在下面的示例中,我选择了文本和组合框。当。。。的时候.ControlSource
是一个零长度字符串,设置控件的.Value
为空。
For Each ctl In Me.Controls
Select Case ctl.ControlType
Case acTextBox, acComboBox ' adjust to taste
'Debug.Print ctl.Name, Len(ctl.ControlSource)
If Len(ctl.ControlSource) = 0 Then
ctl.value = Null
End If
Case Else
' pass
End Select
Next
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)