【发布时间】:2016-01-20 13:47:28
【问题描述】:
好的,所以当我按下特定按钮时,我想遍历所有表单,然后在每个表单中找到带有“TESTING”标签的每个控件。如果 tag = 'TESTING' 那么我想将对象的标题更改为 'abc123'。
带有“TESTING”标签的唯一对象将是标签,因此它们将具有标题属性。
到目前为止,我有这个功能:
Public Function changelabel()
On Error Resume Next
Dim obj As AccessObject, dbs As Object
Dim ctrl as Control
Set dbs = Application.CurrentProject
For Each obj In dbs.AllForms
DoCmd.OpenForm obj.Name, acDesign
For Each ctrl In Me.Controls
If ctrl.Tag = "TESTING" Then
ctrl.Caption = "abc123"
End If
Next ctrl
Next obj
End Function
然后这个作为按钮代码:
Public Sub TestButton_Click()
Call changelabel
End Sub
所以它执行第一个 for 循环并正确打开设计视图中的所有表单。问题在于第二个 for 循环。没有将标签属性为“TESTING”的标签标题更改为“abc123”。
那么我需要进行哪些更改才能使第二个 for 循环正常工作?
【问题讨论】:
-
您在设计模式下以打开的形式使用我。您需要将其打开到表单对象中或引用它,我是代码所在的加载表单。
-
@Nathan_Sav 完美,这正是我的代码出了问题。我已经将它从 Me.Controls 更改为 Form(obj.Name).Controls 并且它现在似乎正在工作。谢谢!
标签: forms vba ms-access for-loop