Tin tức mới

    Đăng ký nhận báo giá 2026

    Xử lý lỗi VBA ACCESS

    1. Error Handling là gì?

    Xử lý lỗi trong VBA Access
    Xử lý lỗi trong VBA Access
    Error Handling (Xử lý lỗi) là kỹ thuật giúp chương trình:

      • Không bị dừng đột ngột khi gặp lỗi
      • Hiển thị thông báo thân thiện cho người dùng
      • Ghi log lỗi để debug
      • Tiếp tục chạy hoặc thoát an toàn

    👉 Trong VBA Access, nếu không xử lý lỗi:

      • Code sẽ dừng ngay lập tức
      • Hiển thị thông báo lỗi khó hiểu (debug message)

    2. Các loại lỗi trong VBA

    2.1. Lỗi cú pháp (Syntax Error)

    Sai cấu trúc code
    Ví dụ:

    
    If x = 10 Then
        MsgBox "OK"
    ' thiếu End If
    

    👉 Lỗi này phát hiện khi compile, không chạy được

    2.2. Lỗi runtime (Runtime Error)

    Xảy ra khi chương trình đang chạy
    Ví dụ:

    
    Dim x As Integer
    x = 1 / 0 ' lỗi chia cho 0
    

    👉 Đây là loại lỗi cần xử lý bằng Error Handling

    2.3. Lỗi logic

      • Code chạy nhưng kết quả sai
      • Không có thông báo lỗi

    3. Cú pháp xử lý lỗi trong VBA

    
    On Error GoTo ErrorHandler
    
    ' Code chính
    Exit Sub
    
    ErrorHandler:
        MsgBox "Có lỗi xảy ra"
    End Sub
    

    4. Các kiểu xử lý lỗi phổ biến

    👉 Khi có lỗi → nhảy đến label xử lý lỗi

    
    Sub TestError()
        On Error GoTo Loi
    
        Dim x As Integer
        x = 1 / 0
    
        Exit Sub
    
    Loi:
        MsgBox "Lỗi: " & Err.Description
    End Sub
    

    📌 Giải thích:

      • Err.Description: mô tả lỗi
      • Err.Number: mã lỗi

    4.2. On Error Resume Next

    👉 Bỏ qua lỗi, chạy tiếp dòng sau

    
    Sub TestResume()
        On Error Resume Next
    
        Dim x As Integer
        x = 1 / 0
    
        MsgBox "Chương trình vẫn chạy"
    End Sub
    

    ⚠️ Lưu ý:

      • Dễ gây lỗi logic nếu lạm dụng
      • Chỉ dùng khi chấp nhận lỗi

    4.3. On Error GoTo 0

    👉 Tắt chế độ xử lý lỗi

    
    On Error GoTo 0
    

    5. Đối tượng Err trong VBA

    Đây là trái tim của Error Handling

    Thuộc tính Ý nghĩa
    Err.Number Mã lỗi
    Err.Description Mô tả lỗi
    Err.Source Nguồn lỗi

    Ví dụ:

    
    Sub TestErr()
        On Error GoTo Loi
    
        Dim x As Integer
        x = 1 / 0
    
        Exit Sub
    
    Loi:
        MsgBox "Mã lỗi: " & Err.Number & vbCrLf & _
               "Mô tả: " & Err.Description
    End Sub
    

    6. Best Practice (Thực hành tốt)

    6.1. Luôn có Exit trước ErrorHandler

    
    Exit Sub
    ErrorHandler:
    

    👉 Tránh chạy nhầm vào block lỗi

    6.2. Hiển thị lỗi rõ ràng

    
    MsgBox "Có lỗi xảy ra: " & Err.Description, vbCritical
    

    6.3. Ghi log lỗi (nâng cao)

    
    Sub LogError()
        Open "C:\log.txt" For Append As #1
        Print #1, Now & " - " & Err.Number & " - " & Err.Description
        Close #1
    End Sub
    

    6.4. Reset lỗi

    
    Err.Clear
    

    7. Ví dụ thực tế trong Access

    Ví dụ: Xử lý lỗi khi mở form

    
    Sub OpenFormSafe()
        On Error GoTo Loi
    
        DoCmd.OpenForm "frmKhachHang"
    
        Exit Sub
    
    Loi:
        MsgBox "Không mở được form: " & Err.Description
    End Sub
    

    Ví dụ: Xử lý lỗi query

    
    Sub RunQuery()
        On Error GoTo Loi
    
        DoCmd.OpenQuery "qryTest"
    
        Exit Sub
    
    Loi:
        MsgBox "Lỗi query: " & Err.Description
    End Sub
    

    8. So sánh nhanh các phương pháp

    Phương pháp Khi nào dùng
    On Error GoTo Xử lý lỗi chuyên nghiệp
    Resume Next Bỏ qua lỗi nhỏ
    GoTo 0 Reset

    10. 🎯 Tổng kết

    Error Handling giúp hệ thống ổn định & chuyên nghiệp
    Dùng On Error GoTo là chuẩn nhất
    Luôn dùng Err.Description để debug

    Yêu cầu tư vấn

      Tư vấn sản phẩm phù hợp

      Yêu cầu báo giá

      Yêu cầu tư vấn kỹ thuật

      Leave a Reply

      Your email address will not be published. Required fields are marked *

      Gọi ngay 24/7 Zalo Messenger Support
      Gọi ĐT tư vấn ngay Chat ngay qua Messenger Chat ngay qua Zalo
      Yêu cầu tư vấn

        Tư vấn sản phẩm phù hợp

        Yêu cầu báo giá

        Yêu cầu tư vấn kỹ thuật