如何在选项卡上的选项卡之间循环?

时间:2016-11-10 23:27:59

标签: vba ms-access ms-access-2013

我的访问表单“frmLoad”有五个标签页。其中一个页面有一个子窗体“frmClients”,带有几十个标签页。

我需要遍历frmClients上的每个选项卡页面,Debug.Print选项卡名称,修改某些标签,然后继续下一步。

(我不必访问frmLoad上的任何其他标签;我只提及它,以防我们必须完全限定所有内容。)

我一直在阅读的文档令人困惑。我不确定Page和Tab之间的区别,一方面。

1 个答案:

答案 0 :(得分:2)

您可以从frmClients'中引用标签页。控制集合。

在标准模块中运行它,它将Debug.Print所需的引用。

Sub PrintLabelsReferences()
    Dim ctrl As Object, pageCtrl As Object
    For Each ctrl In Forms("frmLoad").Controls("frmClients").Controls
        If TypeName(ctrl) = "Page" Then
            For Each pageCtrl In ctrl.Controls
                If TypeName(pageCtrl) = "Label" Then
                    Debug.Print "Me.Controls(""frmClients"").Controls("""; pageCtrl.Name; """).Caption ="""; pageCtrl.Caption; """"
                    Debug.Print "Forms(""frmLoad"").Controls(""frmClients"").Controls("""; pageCtrl.Name; """).Caption ="""; pageCtrl.Caption; """"
                End If
            Next
        End If
    Next
End Sub

如果要从表单外部修改Label.Caption,请使用Forms()引用;如果要在Form代码模块中引用Label.Caption,请使用Me。

enter image description here enter image description here