【问题标题】:Determine which Controls are in the Header/Footer of an Access form via VBA通过 VBA 确定访问表单的页眉/页脚中的控件
【发布时间】:2016-06-29 21:43:56
【问题描述】:

我有一个在页眉、页脚和描述中带有标签的表单。我只想列出页眉中的标签,并避免页脚和描述部分中的其他标签。我有循环进入控件的代码 (For Each control in Form.Controls),我现在需要的只是将标题标签与其他标签分开。

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    根据您所谈论的标题部分,您可能想要:

    For Each ctl In Me.FormHeader.Controls

    或者:

    For Each ctl In Me.PageHeaderSection.Controls

    但是,通过 cmets 中的讨论,我们发现您希望遍历一个表单中的所有控件,该表单是另一个表单的子表单,在这种情况下,您将使用以下内容:

    Forms![frmMainForm]![frmSubForm].Form.FormHeader.Controls

    【讨论】:

    • .FormHeader.PageHeaderSection 仅在表单实际上分别具有表单页眉或页眉时才会出现在 IntelliSense 中。
    • 感谢戈德的解释!
    • 感谢大卫的快速帮助。不幸的是,正如我告诉 Gord 的那样,我的 Access VBA 中不存在 FormHeader。
    • Thor,正如 Gord 在上面回答的那样......并且可能会回复您的其他评论,如果您的表单具有 FormHeader,则 .FormHeader 存在。如果您使用的是 PageHeaderSection,那么您将使用 PageHeaderSection。无论如何,您要做的是确定您正在使用的特定类型的部分并使用 Me.*SectionName*.Controls
    • 大卫。我打开了子表单项目,它说的是 FormHeader,而不是 PageHeader。但无论如何,我将标签与标头与其他标签分开。当我列出这些标签时,它们的顺序与子表单中的顺序不同。考虑到它们是标签并且没有标签顺序,您知道如何以与表格相同的顺序获取它们吗?干杯。
    【解决方案2】:

    表单或报表中的 Section 属性允许访问特定的部分。建议您使用常量以使您的代码更易于阅读。

    Form_Test.Section(acDetail).Controls.Count
    
    Form_Test.Section(acheader).Controls.Count
    Form_Test.Section(acFooter).Controls.Count
    
    Form_Test.Section(acPageHeader).Controls.Count
    Form_Test.Section(acPageHeader).Controls.Count
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      相关资源
      最近更新 更多