Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

根據預設,您可以列印不含記錄的報表。 若要解決此問題,您可以使用宏或 Microsoft Visual Basic for Applications (VBA) 程式代碼來偵測報告中沒有記錄,然後取消列印作業。 本文中的步驟將說明如何使用這兩種技巧。

您想要做什麼?

當報表不含任何記錄時,您可能會想要取消列印報表。 例如,如果您開始銷售新產品,您可能需要一段時間才能註冊任何銷售。 因此,您應該考慮某些報表可能不包含任何詳細記錄,而 Count 函數等匯總函數可能無須計算。 若要輕鬆處理這類專案,您可以建立宏來取消列印作業。 您也可以新增幾行精心放置的 VBA 程式代碼,以執行相同的動作。 VBA 是 Access 使用的程序設計語言。

您可以將宏或 VBA 程式代碼新增至報表的 On No Data 事件過程。 每當您執行的報表沒有記錄時,Access 會觸發 [ 無數據 ] 事件。 本文所述的宏和 VBA 程式代碼會顯示適當的訊息,並在報表不包含數據時取消列印報表。 當您將宏或 VBA 程式代碼新增至 [ 無數據 ] 事件過程時,每當您開啟不含記錄的報告時,宏或 VBA 程式代碼都會執行。 當您按兩下 [ 確定 ] 關閉任一提醒訊息時,宏也會關閉空白報表。 當您將宏或 VBA 程式代碼新增至報表時,當您嘗試在 [報表檢視] 或 [版面配置檢視] 中顯示時,空白報表將不會開啟,但您可以在 [設計檢視] 中開啟報表。

使用宏取消列印

本節所述的宏會在您嘗試列印空白報表時顯示警示訊息。 當您按下 [ 確定 ] 關閉消息框時,宏會自動取消列印作業。 如果您未包含警示訊息,當您嘗試列印報表時,該訊息看起來會像沒有任何反應一樣,這可能會讓報表的用戶產生混淆。

建立宏

  1. 在 [導航窗格] 中,以滑鼠右鍵按下您要變更的報告,然後按兩下 [ 設計檢視]

  2. 在 [設計] 索引標籤上,按一下 [顯示/隱藏] 群組中的 [屬性表]。

    -或-

    根據您的地區和語言設定,按兩下報表左上角或右上角的方塊。

  3. 按兩下 [ 事件] 索 引標籤,然後在 [ 無數據] 屬性 方塊中,按兩下 [ [建立器] 按鈕]。

    [ 選擇建立器] 對話框隨即出現。

  4. 按兩下 [宏建立器],然後按兩下 [ 確定]

    宏設計工具隨即啟動並顯示空白宏。

  5. 在宏設計視窗上的宏動作下拉式清單中,從清單中選取 [訊息箱 ]。

  6. 在 [ 訊息] 方 塊中,輸入警示訊息的文字。

    例如,您可以輸入下列內容: 沒有記錄可供報告。

  7. 或者,將 Beep 方塊 中的自變數值從 [ ] 變更為 [否 ],然後在 [ 類型 ] 列表中,選取要顯示在通知訊息中的圖示類型。

  8. 在 [ 標題] 方 塊中,輸入警示訊息的標題。

    例如,您可以輸入 [無記錄]

  9. 選取 [訊息箱 ] 宏指令下方的宏指令下拉式清單,然後選取 [CancelEvent]

  10. 在 [ 設計] 索引 標籤的 [ 關閉 ] 群組中,按兩下 [ 儲存]

  11. 在 [設計] 索引標籤上,按一下 [關閉] 群組中的 [關閉]。 如果出現警示訊息,詢問您是否要儲存宏和報表屬性的變更,請按兩下 [ ],關閉報表,在出現提示時儲存變更,然後繼續進行後續步驟以進行測試。

測試您的宏

  • 在 [導航窗格] 中,以滑鼠右鍵按兩下包含宏的報表,然後按兩下 [ 列印]。 視您選擇的選項而定,Access 會顯示警示訊息。

    當您按下 [ 確定 ] 關閉郵件時, CancelEvent 動作會停止列印作業。 由於您未指定任何其他事件 (例如開啟報表以檢視) ,因此報表會關閉。

頁面頂端

使用 VBA 程序代碼取消列印

此處所述的 VBA 程式代碼運作方式與上一節所述的宏類似,當您開啟空白報表時,它會顯示警示訊息,然後在您關閉警示訊息時取消列印作業。

新增 VBA 程序代碼

  1. 在 [導航窗格] 中,以滑鼠右鍵按下您要變更的報告,然後按兩下 [ 設計檢視]

    附註: 若要完成此程式,請使用不含記錄的報告。

  2. 在 [設計] 索引標籤上,按一下 [顯示/隱藏] 群組中的 [屬性表]。

    -或-

    根據您的地區和語言設定,按兩下報表左上角或右上角的方塊。

  3. 按兩下 [ 事件] 索 引標籤,然後在 [ 無數據] 屬性 方塊中,按兩下 [ [建立器] 按鈕]。

    [ 選擇建立器] 對話框隨即出現。

  4. 按兩下 [程序代碼建立器],然後按兩下 [ 確定]

    Visual Basic 編輯器隨即啟動並顯示空白事件過程。

  5. 在 Visual Basic 編輯器中輸入下列程式代碼,讓Report_NoData程式在完成時看起來完全像這樣:

    Private Sub Report_NoData (Cancel As Integer)  MsgBox "There are no records to report", vbExclamation, "No Records"  Cancel = TrueEnd Sub
  6. 完成後,按兩下 [ 檔案],然後按兩下 [儲存 ]

  7. 按兩下 [檔案],然後按兩下 [ 關閉] 並返回 Microsoft Access

  8. 關閉開啟的報告,然後按兩下 [ ] 確認儲存。

  9. 在 [導航窗格] 中,以滑鼠右鍵按兩下剛才變更的報告,然後按兩下 [ 列印]。 視您選擇的選項而定,Access 會顯示警示訊息。

Report_NoData程式會使用 MsgBox 函數顯示 [沒有記錄可以報告 郵件] 和 [ 確定] 按鈕。 當您按兩下 [ 確定] 時,程式中的 [Cancel=True] 行會指示 Access 取消報告。 Cancel 是自動傳遞至事件過程的自變數,Access 一律會在事件過程完成時檢查它。

頁面頂端

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。