2012-03-08 105 views
1

我想改善我的錯誤處理代碼。窗體上的錯誤處理

使用Access(2007)VBA:

當形式對錯誤處理程序發生錯誤時,可變DATAERR給我的錯誤代碼,但我不得不Err對象的訪問權限。

訪問Err對象讓我來分析錯誤的描述,並給出詳細的自定義消息(例如錯誤代碼3314到底是哪場導致錯誤)

我怎麼能有用戶訪問錯誤對象來自窗體的OnError處理程序?不僅是錯誤代碼

注意: 我可以通過附加到表單上「保存」和「刪除」按鈕的代碼訪問Err對象,併爲重複鍵提供自定義消息,缺少必填字段,鏈接的索引不被刪除等。

如果用戶點擊這些按鈕,這工作正常。但如果用戶決定選擇下一行或上一行 - 導致發生保存 - 我的代碼不會被調用,並且用戶會看到標準的MS Access錯誤消息

+2

表單錯誤與VBA或DAO錯誤不一樣,AFAIK:http://msdn.microsoft.com/en-us/library/ff836345.aspx – Fionnuala 2012-03-08 12:40:55

+0

@Remou很好的答案,可惜它是一個評論,或者我可以有upvoted。 – 2012-03-08 14:15:41

+0

@Matt謝謝,但它很短,主要是鏈接,所以我認爲這是違反規則的答案。 – Fionnuala 2012-03-08 14:17:46

回答

1

」如果用戶決定選擇下一個或前行 - 這會導致保存發生 - 我的代碼不叫,並且用戶被顯示的標準的MS Access錯誤消息

使用窗體的更新前和前插入事件來驗證當前值。如果有任何不可接受的情況,您可以將過程的「取消」參數設置爲「True」,並通知用戶有關無效值。