Chào mừng các bạn đã ghé thăm blog của tôi

Diễn đàn dành cho những người yêu công nghệ số

Thứ Bảy, 12 tháng 3, 2011

Bắt lỗi khi nhập liệu sai và người dùng đóng form


Hỏi: Tôi tạo form nhập liệu, và muốn bắt lỗi khi người dùng nhập sai nhưng muốn đóng form thì hiện ra thông báo : " Có dữ liệu bị lỗi, Bạn có muốn đóng không?" Vậy tôi phải bắt lỗi thế nào?

Đáp:
(theo hướng dẫn anh phatnq2002 trên DKT)
Để bắt được lỗi này, bạn phải kết hợp hai sự kiện Form_Error và Form_UnLoad.


Bạn nên tạo một biến dùng chung cho module (nghĩa là khai báo ở vùng Declaration của Form Module), ví dụ Dim hasError As Boolean chẳng hạn

Cái sự kiện bạn bắt bao gồm 2 cái:

1. là Form_Unload: sự kiện này xảy ra trước Close. Do vậy nếu Cancel=True ở đây đồng nghĩa với việc hủy Close.
Private Sub Form_Unload(Cancel As Integer)
If hasError Then
If MsgBox("Có dữ liệu bị lỗi, Bạn có muốn đóng không?", vbYesNo) = vbNo Then
Cancel = True
Else
DoCmd.RunCommand acCmdUndo
End If
End If
End Sub

2. là Form_Error
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Respponse = acDataErrContinue
hasError = True
Select Case DataErr
Case 2169
MsgBox "Co loi khi luu du lieu."
Case Else
MsgBox "Err No." & DataErr & vbCrLf & "Err Mess: " & Error(DataErr)
End Select
End Sub
__________________________________________

Không có nhận xét nào:

Đăng nhận xét