如何判断Access Form / Report Section是否支持OnRetreat属性/撤退事件?

时间:2016-07-11 06:26:09

标签: ms-access com event-handling access-vba

访问表单和/或报表可以有多个部分(例如报表头,页眉,详细信息等),每个部分都可以使用Report.SectionName检索,其中SectionName是用户定义的,或使用Report.Section(Index)属性,其中Index是前9个部分的Access定义常量,以及任何其他部分的递增索引,按MS

无论段索引如何,该属性都返回一个Section对象,而一个Section对象支持OnRetreat属性。

但是,当我检查VBA代码隐藏报告的各个部分时,VBE不会为PageHeader或PageFooter部分公开OnRetreat事件。如果我尝试检查OnRetreat属性,我会收到运行时错误:

  

运行时错误'2455':

     

您输入的表达式对该页面的引用无效   物业OnRetreat。

这只是Access / VBE的一些内部技巧,还是有一种方法可以通过编程方式确定某节是否支持OnRetreat?

我知道我可以使用On Error Resume Next跳过错误,但我更有兴趣知道是否有一个属性可以确定某个部分是否支持OnRetreat和/或是否有给定Section实例的一种确定节类型的方法。

怀疑我必须写一些模仿内部Access逻辑的东西,如下所示:

Private Function SupportsOnRetreat(ReportSection As section) As Boolean

  Dim rpt As Report
  Set rpt = ReportSection.Parent

  SupportsOnRetreat = Not Report.section(AcSection.acPageHeader) Is ReportSection _
                      And Not Report.section(AcSection.acPageFooter) Is ReportSection

End Function

编辑:我确实找到了[_SectionInReport][_PageHdrFtrInReport]接口,但所有Sections似乎都实现了这两个接口。

0 个答案:

没有答案