Cur*_*che 3 foreach ms-access controls properties
我想隐藏或显示基于用户选择的可变数据的列.如何在MS-Access 2003中将列设置为隐藏?
例如,
用户更改活动后......
For Each ctl In Me.FormNameHere.Form.Controls
If (TypeName(ctl) = "Textbox") Then
If InStr(GetTextList(), ctl.Name) > 0 Then
ctl.hidden = True
Else
ctl.hidden = False
End If
End If
Next ctl
Run Code Online (Sandbox Code Playgroud)
控件没有"隐藏"属性(Access中没有对象具有隐藏属性).他们确实有.Visible属性.
为了将来参考,我建议您熟悉VBE中的对象浏览器 - 打开VBE并点击F2.然后,您可以将搜索范围限制为项目中使用的各个库.但是,确实需要一段时间才能理解对象模型.
此外,您可以依靠Intellisense来学习对象的属性/方法,因此在您正在使用的表单的代码中,您可以键入"Me.MyTextBox".并且Intellisense下拉列表将显示该特定控件的所有属性和方法.它不适用于通用控件变量(如在代码中),因为不同的控件类型具有不同的属性.
当然,属性表给出了属性的名称,即使在代码中它们并不总是使用相同的拼写法(通常它们与删除的空格相同).
此外,您可能希望如何执行此操作,这取决于它是常规表单还是数据表表单.在数据表中,您的控件还具有.ColumnHidden和.ColumnWidth属性(在数据表视图以外的任何视图中设置这些属性都没有效果,并且标准属性表中没有这些属性可用,但保存时对它们的更改将保留表格).
我发现ColumnHidden属性可以解决问题。
For Each ctl In Me.FormNameHere.Form.Controls
If (TypeName(ctl) = "Textbox") Then
If InStr(GetTextList(), ctl.Name) > 0 Then
ctl.Columnhidden = True
Else
ctl.Columnhidden = False
End If
End If
Next ctl
Run Code Online (Sandbox Code Playgroud)
我从这个相关问题得到了提示。