访问表单和/或报表可以有多个部分(例如报表头,页眉,详细信息等),每个部分都可以使用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似乎都实现了这两个接口。