【发布时间】:2014-09-07 05:02:33
【问题描述】:
有没有办法将 Access 表单中的文本框设置为数组,以便在 VBA 循环中使用?
【问题讨论】:
-
是的。
Me.Controls(someString & i) -
如果你有一个记录源,你可能会使用一个连续的表格。
-
是的,这也可以,这取决于用例
有没有办法将 Access 表单中的文本框设置为数组,以便在 VBA 循环中使用?
【问题讨论】:
Me.Controls(someString & i)
您可以访问控件并遍历它们。必须选择一个可迭代的命名方案。
Me.Controls("txt" & intloop)
【讨论】:
我不同意 serakfalcon 的要求,因为它需要特定的命名模式来遍历文本框。正确的方法是查看控件类型。真的应该这样做:
Dim ctl As Access.Control
For Each ctl In Forms!MyForm.Controls
If ctl.ControlType = acTextbox Then
'...your code here.
End If
Next
这不需要特定的命名架构(不是说这是一个坏主意,它不是),并且您确定该对象是您所期望的。
【讨论】:
.Tag 属性以及类型。这允许您保留控件的相关名称,而不是遵循某些迭代命名方案,然后选择要使用的控件子集,以防该类型的控件超出流程范围。