mrsiro > 04-05-18, 11:46 AM
tranthanhan1962 > 04-05-18, 01:36 PM
Function ABC() /Sub BDE()
' Bật hệ thống xử lý lỗi.
On Error GoTo Bị_lỗi /Hoặc ErrorOPQ/ErrorXYZ
Lệnh 1
Lệnh 2
Lệnh 3
.......
Lệnh n
Exit_Bị_lỗi /Hoặc ErrorOPQ/ErrorXYZ:
Exit Function/Sub
Error_Bị_lỗi /Hoặc ErrorOPQ/ErrorXYZ:
Lệnh 1
Lệnh 2
Lệnh 3
.......
Lệnh n
End Function
Function ABC() /Sub BDE()
' Bật hệ thống xử lý lỗi.
On Error GoTo Bị_lỗi
Lệnh 1
Lệnh 2
Lệnh 3
.......
Lệnh n
Bị_lỗi:
Lệnh 1
Lệnh 2
Lệnh 3
.......
Lệnh n
End Function
Private Sub B_AfterUpdate()
C.Value = A.Value / B.Value
End Sub
Private Sub B_AfterUpdate()
On Error GoTo Bị_lỗi
C.Value = A.Value / B.Value
Bị_lỗi:
MsgBox "Đã bị lỗi"
Exit Sub
End Sub
mrsiro > 04-05-18, 05:42 PM
tranthanhan1962 > 04-05-18, 06:25 PM
ongke0711 > 05-05-18, 01:09 AM
(04-05-18, 05:42 PM)mrsiro Đã viết: Nếu mà có function thì code nhìn đẹp hơn, chứ 1 form mà cứ chèn on error các thứ nhìn nó rối bù.
yamakashi2003 > 01-11-20, 10:48 AM
(04-05-18, 01:36 PM)tranthanhan1962 Đã viết: Đây là cú pháp xử lý lỗi bất kỳ trong code và có thể được đặt trong bất kỳ sub hoặc function nào. Cú pháp đầy đủ:Bác ơi cho em hỏi sao em chạy đoạn code này, không có lỗi gì cả mà nó vẫn hiện thông báo msgbox "đã bị lỗi" vậy ạ
. Không cần chỉ cần phang đoạn code này vào là xong:
Vì vậy! Đây là một bẩy lỗi bất kỳ. Và tất nhiên khi bạn muốn đưa nó vào bất kỳ event, sub, function nào thì bạn cứ đưa vào. Mẫu của Microsoft đầy đủ thì có vẻ dài dòng nhưng khi sử dụng thực tế thì cực kỳ đơn giảnMã:Private Sub B_AfterUpdate()
On Error GoTo Bị_lỗi
C.Value = A.Value / B.Value
Bị_lỗi:
MsgBox "Đã bị lỗi"
Exit Sub
End Sub
On Error GoTo Bị_lỗi
......
Bị_lỗi:
......
ongke0711 > 01-11-20, 02:28 PM
(01-11-20, 10:48 AM)yamakashi2003 Đã viết: Bác ơi cho em hỏi sao em chạy đoạn code này, không có lỗi gì cả mà nó vẫn hiện thông báo msgbox "đã bị lỗi" vậy ạ
Private Sub Command36_Click()
On Error GoTo loi
n = 10 / 2
MsgBox n
loi:
MsgBox "Ðã b? l?i"
Exit Sub
End Sub
Private Sub Command36_Click()
On Error GoTo loi
n = 10 / 2
MsgBox n
Exit Sub
loi:
MsgBox "Ðã b? l?i"
End Sub
Private Sub Command36_Click()
On Error GoTo loi
n = 10 / 2
MsgBox n
loi_exit:
'Các dòng code xử lý trước khi thoát như: rs.Close, blnRet=False,...
Exit Sub
loi:
MsgBox "Ðã b? l?i"
Resume loi_exit
End Sub