在 Microsoft Access 為一張將打印的、沒有任何數(shù)據(jù)的報表(該報表綁定到空的記錄集)設置格式后,報表打印前,NoData 事件發(fā)生。可以利用該事件取消對空白報表的打印。
Private Sub Report_NoData(Cancel As Integer)
Cancel 該設置確定是否打印報表。將 Cancel 參數(shù)設為 True (–1) 可禁止打印報表。還可以使用 DoCmd 對象的 CancelEvent 方法取消打印報表。
若要在該事件發(fā)生時執(zhí)行宏或事件過程,請將 OnNoData 屬性設置為宏的名稱或 [事件過程]。
如果報表未綁定到表或查詢(通過使用報表的 RecordSource 屬性)上,則 NoData 事件不會發(fā)生。
該事件將發(fā)生在報表的 Format 事件發(fā)生之后,但在第一個 Print 事件發(fā)生之前。
該事件不會在子報表中發(fā)生。如果要在子報表為空時隱藏在子報表中的控件,使控件不被打印,則可以在 Format 或 Print 事件發(fā)生時,在運行的宏或事件過程中使用 HasData 屬性。
在報表中的第一個 Page 事件發(fā)生之前,NoData 事件發(fā)生。
下面的示例顯示如何取消打印沒有數(shù)據(jù)的報表。并顯示一條消息,通知用戶打印已取消。
若要試用該示例,請將下面的事件過程添加到報表中。當報表中不含有數(shù)據(jù)時,嘗試運行報表。
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