Bạn đã bao giờ gặp một số lỗi Access, nhưng không có thông báo lỗi giải thích nó là gì chưa?
AccessError()
là một cách nhanh chóng để nhận thông báo lỗi liên quan đến số lỗi Access:
Ký tự giữ chỗ trong ống
Ký tự ống dẫn (|
) là một thanh dọc (khả dụng qua [Shift] + [\] {dấu gạch chéo ngược} trên bàn phím tiếng Anh).
Hàm AccessError sử dụng ký tự này làm trình giữ chỗ cho văn bản cụ thể trong một thông báo lỗi.
Ví dụ:Lỗi truy cập 3211 là "... không thể khóa bảng '|' ... "Ký tự ống dẫn trong thông báo chung chung được thay thế bằng chuỗi thực được sử dụng trong dòng mã gây ra thông báo lỗi:
Tài liệu Chính thức
Hàm AccessError thực chất là một phương thức của đối tượng Access.Application. Dưới đây là mô tả về những gì nó hoạt động từ tài liệu chính thức:
Bạn có thể sử dụng AccessError để trả về chuỗi mô tả được liên kết với lỗi Microsoft Access hoặc Đối tượng truy cập dữ liệu (DAO).
Cần lưu ý rằng đây là Microsoft Quyền truy cập cụ thể hàm số. Nói cách khác, bạn sẽ không thể gọi nó từ một ứng dụng Office khác, như Excel hoặc Word. *
(* Điều này không đúng về mặt kỹ thuật. Bạn có thể tạo đối tượng Ứng dụng Access thông qua COM trong bất kỳ môi trường VBA nào và sau đó có thể gọi phương thức AccessError từ đối tượng đó. Tất nhiên, điều đó sẽ chỉ hữu ích nếu bạn muốn kiểm tra Chuỗi thông báo lỗi dành riêng cho quyền truy cập trong ứng dụng Office khác, điều này dường như không thể xảy ra.)
Các trường hợp sử dụng
Thành thật mà nói, tôi không bao giờ nhớ được đã sử dụng phương pháp này bên trong mã ứng dụng của mình.
Đây là tính năng mà tôi hầu như chỉ sử dụng từ Cửa sổ tức thì khi tôi chỉ muốn một cách nhanh chóng để xác định số lỗi Access đại diện cho cái gì.
Điều này sẽ hữu ích nhất nếu bạn gặp phải trình xử lý lỗi có Select Case Err.Number
khối và tất cả Case
riêng lẻ câu lệnh được sử dụng các số không có chú thích kèm theo, như thế này:
Select Case Err.Number
Case 2452
'Do something
Case 2455
'Do a different thing
Case 2467
'Do something else
End Select
Được trang bị phương pháp AccessError, bạn có thể cải thiện mã này bằng cách thêm nhận xét với mô tả ngắn gọn về từng số lỗi:
Select Case Err.Number
Case 2452 'invalid reference to the Parent property
'Do something
Case 2455 'invalid reference to the property
'Do a different thing
Case 2467 'expr refers to object that is closed or doesn't exist
'Do something else
End Select
Các vấn đề cần cân nhắc khi tích hợp cơ sở dữ liệu lỗi
Nếu bạn đang sử dụng cơ sở dữ liệu lỗi – như FogBugz – cung cấp tính năng nhóm các lỗi dựa trên mô tả của chúng, bạn có thể muốn sử dụng chung chung thông báo lỗi trong chủ đề của báo cáo lỗi (hoặc bất kỳ trường nào phân nhóm) và nắm bắt thông tin cụ thể thông báo lỗi trong trường chi tiết sự kiện lỗi.
Tôi thảo luận vấn đề này trong ngữ cảnh chức năng ném lỗi tùy chỉnh của tôi tại đây:Ném lỗi trong VBA:Vấn đề tích hợp cơ sở dữ liệu lỗi.