Report.Open 事件 (Access)

Open 事件在预览或打印报表之前发生。

语法

表达式打开 (取消)

表达 一个代表 Report 对象的变量。

参数

名称 必需/可选 数据类型 说明
Cancel 必需 Integer 该设置确定是否打开窗体或报表。 将 Cancel 参数设置为 True (1) 将取消窗体或报表的打开。

返回值

Nothing

注解

例如, 打开 的宏或事件过程可以打开一个自定义对话框,用户在其中输入条件以筛选要显示在窗体或报表中包含的日期范围的记录集。

基于基础查询打开报表时,Microsoft Access 先运行 Open 宏或事件过程,然后再运行报表的基础查询。 这使用户可以在报表打开前指定条件;例如,在自定义对话框中,当 Open 事件发生时显示。

如果应用程序可以一次加载多个窗体,请在焦点移动到其他窗体时使用 ActivateDeactivate 事件而不是 Open 事件来显示和隐藏自定义工具栏。

Close 事件发生时,可以打开另一个窗口或要求输入用户名来产生日志项,以表明使用该窗体或报表的用户。

如果尝试确定是否对宏或事件过程使用 OpenLoad 事件,一个显著区别是 Open 事件可以 取消,但 Load 事件不能。 例如,如果要在窗体 Open 事件的事件过程中动态生成窗体的记录源,如果没有要显示的记录,则可以取消打开窗体。 同样, Unload 事件可被取消,但不能 关闭 的事件。

示例

下面的示例演示如何使用结构化查询语言 (SQL) 语句建立报表的数据源,因为它没有打开。

Private Sub Report_Open(Cancel As Integer)

    On Error GoTo Error_Handler

    Me.Caption = "My Application"

    DoCmd.OpenForm FormName:="frmReportSelector_MemberList", _
    Windowmode:=acDialog

    'Cancel the report if "cancel" was selected on the dialog form.

    If Forms!frmReportSelector_MemberList!txtContinue = "no" Then
        Cancel = True
        GoTo Exit_Procedure
    End If
    Me.RecordSource = ReplaceWhereClause(Me.RecordSource, _
      Forms!frmReportSelector_MemberList!txtWhereClause)

Exit_Procedure:
    Exit Sub

Error_Handler:
    MsgBox Err.Number & ": " & Err.Description
    Resume Exit_Procedure
    Resume

End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。