預設情況下,你可以列印不包含任何紀錄的報告。 若要解決此問題,您可以使用巨集或 Microsoft Visual Basic for Applications (VBA) 程式碼來偵測報表中是否有記錄,然後取消列印作業。 本文章中的步驟會說明如何使用這兩種技巧。
您想要做什麼?
當報表不含任何記錄時,您可能會想要取消列印。 例如,若您剛開始銷售新產品,可能會有一段時間尚未有任何銷售記錄。 因此,您應該考慮到某些報表可能不包含任何詳細記錄,而 Count 函數等彙總函數可能沒有任何內容可計算。 為了妥善處理這種情況,您可以建立取消列印作業的巨集。 您也可以新增幾行精心放置的 VBA 程式碼來執行相同的動作。 VBA 是 Access 使用的程式語言。
你可以將巨集或 VBA 程式碼加入報告的 「無資料 」事件程序。 當你執行沒有紀錄的報告時,Access 會觸發「 無資料」 事件。 本文所述的巨集和 VBA 程式碼會顯示適當的訊息,並在報表不包含資料時取消列印報表。 當您將巨集或 VBA 程式碼新增至 On No Data 事件程序時,每當您開啟不含記錄的報表時,巨集或 VBA 程式碼都會執行。 當您按一下 [確定] 關閉任一警示訊息時,巨集也會關閉空白報表。 當您將巨集或 VBA 程式碼新增至報表時,當您嘗試在 [報表檢視] 或 [版面配置檢視] 中顯示報表時,系統將不會開啟空白報表,但您可以在 [設計檢視] 中開啟報表。
使用巨集取消列印
本節所述的巨集會在您嘗試列印空白報表時顯示警示訊息。 當您按一下 [確定] 關閉訊息方塊時,巨集會自動取消列印作業。 如果不包含警示訊息,則當您嘗試列印報表時看起來好像什麼都沒有發生,這可能會讓報表使用者感到困惑。
建立巨集
- 在 [功能窗格] 中,以滑鼠右鍵按一下您要變更的報表,然後按一下 [設計檢視]。
- 在 [設計] 索引標籤上,按一下 [顯示/隱藏] 群組中的 [屬性表]。
-或-
根據您的地區和語言設定,按兩下報表左上角或右上角的方塊。 - 點選 事件 標籤,在 「無資料 」屬性框中點選
。
隨後會出現 [選擇建立器] 對話方塊。 - 按一下 [巨集建立器],然後按一下 [確定]。
巨集設計工具隨即啟動並顯示空白巨集。 - 在巨集設計視窗上的巨集指令下拉式清單中,從清單中選取 [MessageBox]。
- 在 [訊息] 方塊中,輸入警示訊息的文字。
例如,您可以輸入下列內容:報表沒有記錄。 - 或者,將 [嗶嗶聲] 方塊中的引數值從 [是] 變更為 [否],然後在 [類型] 清單中,選取要顯示在警示訊息中的圖示類型。
- 在 [標題] 方塊中,輸入您警示訊息的標題。
例如,您可以輸入 [無記錄]。 - 選取 MessageBox 巨集指令下方的巨集指令下拉式清單,然後選取 [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 取消報表。 取消 是一個參數,會自動傳遞給事件程序,當事件程序完成時,Access 會自動檢查。