根據預設,您可以列印不含記錄的報表。 若要解決此問題,您可以使用宏或 Microsoft Visual Basic for Applications (VBA) 程式代碼來偵測報告中沒有記錄,然後取消列印作業。 本文中的步驟將說明如何使用這兩種技巧。
您想要做什麼?
當報表不含任何記錄時,您可能會想要取消列印報表。 例如,如果您開始銷售新產品,您可能需要一段時間才能註冊任何銷售。 因此,您應該考慮某些報表可能不包含任何詳細記錄,而 Count 函數等匯總函數可能無須計算。 若要輕鬆處理這類專案,您可以建立宏來取消列印作業。 您也可以新增幾行精心放置的 VBA 程式代碼,以執行相同的動作。 VBA 是 Access 使用的程序設計語言。
您可以將宏或 VBA 程式代碼新增至報表的 On No Data 事件過程。 每當您執行的報表沒有記錄時,Access 會觸發 [ 無數據 ] 事件。 本文所述的宏和 VBA 程式代碼會顯示適當的訊息,並在報表不包含數據時取消列印報表。 當您將宏或 VBA 程式代碼新增至 [ 無數據 ] 事件過程時,每當您開啟不含記錄的報告時,宏或 VBA 程式代碼都會執行。 當您按兩下 [ 確定 ] 關閉任一提醒訊息時,宏也會關閉空白報表。 當您將宏或 VBA 程式代碼新增至報表時,當您嘗試在 [報表檢視] 或 [版面配置檢視] 中顯示時,空白報表將不會開啟,但您可以在 [設計檢視] 中開啟報表。
使用宏取消列印
本節所述的宏會在您嘗試列印空白報表時顯示警示訊息。 當您按下 [ 確定 ] 關閉消息框時,宏會自動取消列印作業。 如果您未包含警示訊息,當您嘗試列印報表時,該訊息看起來會像沒有任何反應一樣,這可能會讓報表的用戶產生混淆。
建立宏
-
在 [導航窗格] 中,以滑鼠右鍵按下您要變更的報告,然後按兩下 [ 設計檢視]。
-
在 [設計] 索引標籤上,按一下 [顯示/隱藏] 群組中的 [屬性表]。
-或-
根據您的地區和語言設定,按兩下報表左上角或右上角的方塊。
-
按兩下 [ 事件] 索 引標籤,然後在 [ 無數據] 屬性 方塊中,按兩下 [ ]。
[ 選擇建立器] 對話框隨即出現。
-
按兩下 [宏建立器],然後按兩下 [ 確定]。
宏設計工具隨即啟動並顯示空白宏。
-
在宏設計視窗上的宏動作下拉式清單中,從清單中選取 [訊息箱 ]。
-
在 [ 訊息] 方 塊中,輸入警示訊息的文字。
例如,您可以輸入下列內容: 沒有記錄可供報告。
-
或者,將 Beep 方塊 中的自變數值從 [ 是 ] 變更為 [否 ],然後在 [ 類型 ] 列表中,選取要顯示在通知訊息中的圖示類型。
-
在 [ 標題] 方 塊中,輸入警示訊息的標題。
例如,您可以輸入 [無記錄]。
-
選取 [訊息箱 ] 宏指令下方的宏指令下拉式清單,然後選取 [CancelEvent]。
-
在 [ 設計] 索引 標籤的 [ 關閉 ] 群組中,按兩下 [ 儲存]。
-
在 [設計] 索引標籤上,按一下 [關閉] 群組中的 [關閉]。 如果出現警示訊息,詢問您是否要儲存宏和報表屬性的變更,請按兩下 [ 是],關閉報表,在出現提示時儲存變更,然後繼續進行後續步驟以進行測試。
測試您的宏
-
在 [導航窗格] 中,以滑鼠右鍵按兩下包含宏的報表,然後按兩下 [ 列印]。 視您選擇的選項而定,Access 會顯示警示訊息。
當您按下 [ 確定 ] 關閉郵件時, CancelEvent 動作會停止列印作業。 由於您未指定任何其他事件 (例如開啟報表以檢視) ,因此報表會關閉。
使用 VBA 程序代碼取消列印
此處所述的 VBA 程式代碼運作方式與上一節所述的宏類似,當您開啟空白報表時,它會顯示警示訊息,然後在您關閉警示訊息時取消列印作業。
新增 VBA 程序代碼
-
在 [導航窗格] 中,以滑鼠右鍵按下您要變更的報告,然後按兩下 [ 設計檢視]。
附註: 若要完成此程式,請使用不含記錄的報告。
-
在 [設計] 索引標籤上,按一下 [顯示/隱藏] 群組中的 [屬性表]。
-或-
根據您的地區和語言設定,按兩下報表左上角或右上角的方塊。
-
按兩下 [ 事件] 索 引標籤,然後在 [ 無數據] 屬性 方塊中,按兩下 [ ]。
[ 選擇建立器] 對話框隨即出現。
-
按兩下 [程序代碼建立器],然後按兩下 [ 確定]。
Visual Basic 編輯器隨即啟動並顯示空白事件過程。
-
在 Visual Basic 編輯器中輸入下列程式代碼,讓Report_NoData程式在完成時看起來完全像這樣:
Private Sub Report_NoData (Cancel As Integer)
MsgBox "There are no records to report", vbExclamation, "No Records" Cancel = True End Sub -
完成後,按兩下 [ 檔案],然後按兩下 [儲存 ]。
-
按兩下 [檔案],然後按兩下 [ 關閉] 並返回 Microsoft Access。
-
關閉開啟的報告,然後按兩下 [ 是 ] 確認儲存。
-
在 [導航窗格] 中,以滑鼠右鍵按兩下剛才變更的報告,然後按兩下 [ 列印]。 視您選擇的選項而定,Access 會顯示警示訊息。
Report_NoData程式會使用 MsgBox 函數顯示 [沒有記錄可以報告 郵件] 和 [ 確定] 按鈕。 當您按兩下 [ 確定] 時,程式中的 [Cancel=True] 行會指示 Access 取消報告。 Cancel 是自動傳遞至事件過程的自變數,Access 一律會在事件過程完成時檢查它。