在 Microsoft Access 为一张将打印的、没有任何数据的报表(该报表绑定到空的记录集)设置格式后,报表打印前,NoData 事件发生。可以利用该事件取消对空白报表的打印。
Private Sub Report_NoData(Cancel As Integer)
Cancel 该设置确定是否打印报表。将 Cancel 参数设为 True (–1) 可禁止打印报表。还可以使用 DoCmd 对象的 CancelEvent 方法取消打印报表。
若要在该事件发生时执行宏或事件过程,请将 OnNoData 属性设置为宏的名称或 [事件过程]。
如果报表未绑定到表或查询(通过使用报表的 RecordSource 属性)上,则 NoData 事件不会发生。
该事件将发生在报表的 Format 事件发生之后,但在第一个 Print 事件发生之前。
该事件不会在子报表中发生。如果要在子报表为空时隐藏在子报表中的控件,使控件不被打印,则可以在 Format 或 Print 事件发生时,在运行的宏或事件过程中使用 HasData 属性。
在报表中的第一个 Page 事件发生之前,NoData 事件发生。
下面的示例显示如何取消打印没有数据的报表。并显示一条消息,通知用户打印已取消。
若要试用该示例,请将下面的事件过程添加到报表中。当报表中不含有数据时,尝试运行报表。
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