Office中国论坛/Access中国论坛

标题: 在类模块中如何使用报表的节的事件? [打印本页]

作者: t小宝    时间: 2009-5-30 23:28
标题: 在类模块中如何使用报表的节的事件?
' ACC中代表节的对象是 Section ,窗体和报表都有节,在窗体中节有单击等事件,在报表中节有格式化等事件。
' 但在类模块中用 WithEvents 声明了一个 Section 后,只有窗体节事件,没有报表节的事件!
' 查了一下隐藏对象,有个_SectionInReport 对象竞有报表节的事件,暗暗高兴,可是测试后最终还是无法运行!郁闷中。。。
类模块如下:
Option Compare Database
Option Explicit

Dim MyRpt As Report
                                                      
'Dim WithEvents srPageFooter As Section               '要使用节的事件,可以这样声明为Section对象,但没有
                                                                          '节在报表中的事件,如格式化等,只有节在窗体中的事件。

Public WithEvents srPageFooter As [_SectionInReport]  '声明为隐藏对象SectionInReport,则有报表节的事件如格式化,
                                                                                '但报表运行时还是出错,提示“对象或类不支持的事件集”。
'Dim srPageFooter As [_SectionInReport]                '这样声明可以将报表的节传递给这个变量,
                                                                           '说明_SectionInReport对象和报表节是相通的。

Public Sub Init(rpt As Report)
    Set MyRpt = rpt
    Set srPageFooter = MyRpt.Section(acPageFooter)    '报表页面页脚
End Sub
Private Sub srPageFooter_Format(Cancel As Integer, FormatCount As Integer)
    Debug.Print MyRpt.Page
End Sub

报表中的代码:

Dim nRpt As New cRpt

Private Sub Report_Open(Cancel As Integer)
    nRpt.Init Me    '出错,提示“对象或类不支持的事件集”。
End Sub
作者: xuwenning    时间: 2009-5-31 10:40
谢谢楼主分享
作者: t小宝    时间: 2009-6-2 17:38
楼上,我在问问题呀~




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3