Report.NoData 事件 (Access)

Microsoft Access 设置格式的报表可用于打印不包含数据 (该报表绑定到一个空的记录集) 之后, 但在打印报表之前,会发生 NoData 事件。 使用此事件可取消打印空白报表。

语法

表达式NoData (取消)

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

参数

名称 必需/可选 数据类型 说明
Cancel 必需 Integer 该设置确定是否打印报表。 将 Cancel 参数设置为 True (1) 可防止报表打印。 还可以使用 DoCmd 对象的 CancelEvent 方法取消打印报表。

备注

若要在发生此事件时运行宏或事件过程,请将 OnNoData 属性设置为宏的名称或 [事件过程]。

如果报表未绑定到表或查询 (使用报表的 RecordSource 属性) ,则 NoData 事件不会发生。

此事件发生在报表的 Format 事件之后,但在第一个 Print 事件之前。

对于子报表,该事件不会发生。 如果要在子报表没有数据时隐藏子报表上的控件,以便在这种情况下控件不会打印,则可以在发生 FormatPrint 事件时运行的宏或事件过程中使用 HasData 属性。

NoData 事件发生在报表的第一个 Page 事件之前。

示例

下面的示例显示如何取消打印没有数据的报表。 并显示一条消息,通知用户打印已取消。

若要试用该示例,请将下面的事件过程添加到报表中。 当报表中不含有数据时,尝试运行报表。

Private Sub Report_NoData(Cancel As Integer) 
    MsgBox "The report has no data." & _ 
         chr(13) & "Printing is canceled. " & _ 
         chr(13) & "Check the data source for the " & _ 
         chr(13) & "report. Make sure you entered " & _ 
         chr(13) & "the correct criteria (for " & _ 
         chr(13) & "example, a valid range of " & _ 
         chr(13) & "dates),." vbOKOnly + vbInformation 
    Cancel = True 
End Sub 

以下示例演示如何使用报表的 NoData 事件来防止在没有要显示的数据时打开报表。

Private Sub Report_NoData(Cancel As Integer)

    'Add code here that will be executed if no data
    'was returned by the Report's RecordSource
    MsgBox "No customers ordered this product this month. " & _
        "The report will now close."
    Cancel = True

End Sub

支持和反馈

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