Theo mặc định, bạn có thể in báo cáo không chứa bản ghi. Để giải quyết sự cố này, bạn có thể sử dụng macro hoặc mã Microsoft Visual Basic for Applications (VBA) để phát hiện sự vắng mặt của bản ghi trong báo cáo, rồi hủy thao tác in. Các bước trong bài viết này sẽ giải thích cách sử dụng cả hai kỹ thuật.
Bạn muốn làm gì?
Bạn có thể muốn hủy in báo cáo khi báo cáo không chứa bất kỳ bản ghi nào. Ví dụ, nếu bạn đang bắt đầu bán một sản phẩm mới, có thể có một khoảng thời gian mà bạn chưa đăng ký bất kỳ doanh số nào. Do đó, bạn nên cân nhắc khả năng một số báo cáo của bạn có thể không chứa bất kỳ bản ghi chi tiết nào và các hàm tổng hợp, chẳng hạn như hàm Count , có thể không có gì để đếm. Để xử lý một lần xuất hiện như vậy một cách duyên dáng, bạn có thể tạo một macro hủy bỏ công việc in. Bạn cũng có thể thêm một vài dòng mã VBA được đặt cẩn thận để thực hiện tương tự. VBA là ngôn ngữ lập trình mà Access dụng.
Bạn thêm macro hoặc mã VBA vào thủ tục sự kiện On No Data của báo cáo. Access kích hoạt sự kiện Không Có Dữ liệu bất cứ khi nào bạn chạy báo cáo không có bản ghi. Macro và mã VBA được mô tả trong bài viết này sẽ hiển thị thông báo thích hợp và hủy việc in báo cáo khi báo cáo đó không chứa dữ liệu. Khi bạn thêm macro hoặc mã VBA vào thủ tục sự kiện Không có Dữ liệu, macro hoặc mã VBA sẽ chạy bất cứ khi nào bạn mở báo cáo không chứa bản ghi. Khi bạn bấm OK để đóng một trong hai thông báo cảnh báo, macro cũng sẽ đóng báo cáo trống. Khi bạn thêm macro hoặc mã VBA vào báo cáo, một báo cáo trống sẽ không mở ra khi bạn tìm cách hiển thị báo cáo ở dạng xem Báo cáo hoặc dạng xem Bố trí — nhưng bạn có thể mở báo cáo ở dạng xem Thiết kế.
Sử dụng macro để hủy in
Macro được mô tả trong phần này sẽ hiển thị thông báo cảnh báo khi bạn tìm cách in báo cáo trống. Khi bạn bấm OK để đóng hộp thông báo, macro sẽ tự động hủy thao tác in. Nếu bạn không đưa vào thông báo cảnh báo, thông báo sẽ xuất hiện như thể không có gì xảy ra khi bạn tìm cách in báo cáo — thông tin nào đó có thể gây nhầm lẫn cho người dùng báo cáo.
Tạo macro
-
Trong Ngăn Dẫn hướng, bấm chuột phải vào báo cáo bạn muốn thay đổi và bấm Dạng xem Thiết kế.
-
Trên tab Thiết kế, trong nhóm Hiển thị/Ẩn, bấm vào Trang Thuộc tính.
-hoặc-
Bấm đúp vào hộp ở góc trên bên trái hoặc bên phải của báo cáo, tùy thuộc vào thiết đặt khu vực và ngôn ngữ của bạn.
-
Bấm vào tab Sự kiện, rồi trong hộp thuộc tính Khi Không Có Dữ liệu, hãy bấm .
Hộp thoại Chọn Bộ dựng xuất hiện.
-
Bấm Bộ dựng Macro, rồi bấm OK.
Trình thiết kế macro bắt đầu và hiển thị một macro trống.
-
Trong danh sách thả xuống các hành động macro trên cửa sổ thiết kế macro, chọn MessageBox từ danh sách.
-
trong hộp Tin nhắn , nhập văn bản cho tin nhắn cảnh báo của bạn.
Ví dụ: bạn có thể nhập thông tin sau: Không có bản ghi nào để báo cáo.
-
Hoặc bạn có thể thay đổi giá trị đối số trong hộp Bíp từ Có thành Không và trong danh sách Loại, hãy chọn kiểu biểu tượng mà bạn muốn xuất hiện trong thông báo cảnh báo của mình.
-
Trong hộp Tiêu đề , nhập tiêu đề cho thông báo cảnh báo của bạn.
Ví dụ: bạn có thể nhập Không có Bản ghi.
-
Chọn danh sách thả xuống các hành động macro bên dưới hành động Hộp Thông báo, rồi chọn Hủy bỏ Thông báo.
-
Trên tab Thiết kế, trong nhóm Đóng , bấm Lưu.
-
Trên tab Thiết kế, trong nhóm Đóng, bấm Đóng. Nếu một thông báo cảnh báo xuất hiện và hỏi bạn có muốn lưu thay đổi đối với macro và thuộc tính báo cáo không, hãy bấm Có, đóng báo cáo của bạn, lưu các thay đổi của bạn nếu được nhắc và tiếp tục đến các bước tiếp theo để kiểm tra.
Kiểm tra macro của bạn
-
Trong Ngăn Dẫn hướng, bấm chuột phải vào báo cáo có chứa macro và bấm In. Tùy thuộc vào tùy chọn bạn đã chọn, Access sẽ hiển thị thông báo cảnh báo.
Khi bạn bấm OK để đóng thư, hành động Hủy Bỏ Khởi động sẽ dừng thao tác in. Vì bạn đã chỉ định không có sự kiện nào khác (chẳng hạn như mở báo cáo để xem), báo cáo sẽ đóng lại.
Sử dụng mã VBA để hủy in
Mã VBA được mô tả ở đây hoạt động rất giống với macro được mô tả trong mục trước — mã này sẽ hiển thị thông báo cảnh báo khi bạn mở báo cáo trống, rồi hủy thao tác in khi bạn đóng thông báo cảnh báo.
Thêm mã VBA
-
Trong Ngăn Dẫn hướng, bấm chuột phải vào báo cáo bạn muốn thay đổi và bấm Dạng xem Thiết kế.
Lưu ý: Để hoàn tất quy trình này, hãy sử dụng báo cáo không chứa bản ghi.
-
Trên tab Thiết kế, trong nhóm Hiển thị/Ẩn, bấm vào Trang Thuộc tính.
-hoặc-
Bấm đúp vào hộp ở góc trên bên trái hoặc bên phải của báo cáo, tùy thuộc vào thiết đặt khu vực và ngôn ngữ của bạn.
-
Bấm vào tab Sự kiện, rồi trong hộp thuộc tính Khi Không Có Dữ liệu, hãy bấm .
Hộp thoại Chọn Bộ dựng xuất hiện.
-
Bấm bộ dựng Mã, rồi bấm OK.
Trình soạn thảo Visual Basic khởi động và hiển thị một thủ tục sự kiện trống.
-
Nhập mã sau đây trong Trình soạn thảo Visual Basic để thủ tục Report_NoData xuất hiện chính xác như sau khi bạn thực hiện xong:
Private Sub Report_NoData (Cancel As Integer)
MsgBox "There are no records to report", vbExclamation, "No Records" Cancel = True End Sub -
Khi bạn đã hoàn tất, hãy bấm Tệp, rồi bấm Lưu.
-
Bấm Tệp, rồi bấm Đóng và Trở về Microsoft Access.
-
Đóng báo cáo đang mở, rồi bấm Có để xác nhận lưu.
-
Trong Ngăn Dẫn hướng, bấm chuột phải vào báo cáo bạn vừa thay đổi, rồi bấm In. Tùy thuộc vào tùy chọn bạn đã chọn, Access sẽ hiển thị thông báo cảnh báo.
Quy Report_NoData sử dụng hàm MsgBox để hiển thị thông báo Không có bản ghi để báo cáo và nút OK. Khi bạn bấm OK, dòng "Hủy bỏ=True" trong quy trình hướng dẫn Access hủy báo cáo. Hủy bỏ là đối số được tự động chuyển đến thủ tục sự kiện và luôn được Access kiểm tra khi hoàn tất thủ tục sự kiện.