Error 事件在窗體或報(bào)表擁有焦點(diǎn),同時(shí)在 Microsoft Access 中產(chǎn)生了一個(gè)運(yùn)行時(shí)錯(cuò)誤時(shí)發(fā)生。
Private Sub object_Error(DataErr As Integer, Response As Integer)
Object 窗體或報(bào)表的名稱。
DataErr 發(fā)生錯(cuò)誤時(shí)由 Err 對(duì)象返回的錯(cuò)誤代碼??梢栽?Error 函數(shù)中使用 DataErr 參數(shù),將該編號(hào)映射到相映的錯(cuò)誤消息。
Response 該設(shè)置確定是否顯示錯(cuò)誤消息。Response 參數(shù)可以是以下固有常量之一。
常量說明
acDataErrContinue 忽略錯(cuò)誤并繼續(xù),不顯示默認(rèn)的 Microsoft Access 錯(cuò)誤消息。您可以提供自定義錯(cuò)誤消息來替代默認(rèn)的錯(cuò)誤消息。
acDataErrDisplay(默認(rèn)值)顯示默認(rèn)的 Microsoft Access 錯(cuò)誤消息。
這包括 Microsoft Jet 數(shù)據(jù)庫(kù)引擎錯(cuò)誤,但不包括 Visual Basic 中的運(yùn)行時(shí)錯(cuò)誤或來自 ADO 的錯(cuò)誤。
如果要在此事件發(fā)生時(shí)執(zhí)行一個(gè)宏或事件過程,請(qǐng)將 OnError 屬性設(shè)置為宏的名稱或 [事件過程]。
在 Error 事件發(fā)生時(shí),通過執(zhí)行事件過程或宏,可以截取 Microsoft Access 錯(cuò)誤消息而顯示自定義消息,這樣可以根據(jù)應(yīng)用程序傳遞更為具體的信息。
下面的示例指出了如何用自定義錯(cuò)誤消息替代默認(rèn)的錯(cuò)誤消息。當(dāng) Microsoft Access 返回錯(cuò)誤消息,指出它已找到重復(fù)鍵(錯(cuò)誤代碼 3022)時(shí),此事件過程會(huì)顯示一條消息,向用戶提供更具體的特定于應(yīng)用程序的信息。
若要試用該示例,請(qǐng)將下面的事件過程添加到基于表(該表將唯一的雇員 ID 編號(hào)作為每條記錄的鍵)的窗體中。
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Const conDuplicateKey = 3022
Dim strMsg As String
If DataErr = conDuplicateKey Then
Response = acDataErrContinue
strMsg = "Each employee record must have a unique " _
& "employee ID number. Please recheck your data."
MsgBox strMsg
End If
End Sub