我是Access中的VBA新手。我建立了一個查詢,它使用一些VBA來查詢組合框的選擇。這很有效,但每隔一段時間Access都會隨機崩潰。微軟Access - 如何防止VBA崩潰?
是否有任何「如果錯誤」聲明我可以把我的VBA代碼,將彈出消息,而不是完全崩潰?
我是Access中的VBA新手。我建立了一個查詢,它使用一些VBA來查詢組合框的選擇。這很有效,但每隔一段時間Access都會隨機崩潰。微軟Access - 如何防止VBA崩潰?
是否有任何「如果錯誤」聲明我可以把我的VBA代碼,將彈出消息,而不是完全崩潰?
首先,您的普通錯誤不應導致崩潰。如果確實如此,您可能需要清理一些文件,例如修復或刪除/重新編譯它。
其次,如果你想在一個簡單的方法來處理錯誤,你可以做到這一點大致是這樣的:在您的應用程序
Public Function doStuff (myInput as Integer) as Integer
On Error GoTo Error_Handling
'something that may cause an error to occur
Exit Function 'Important so your error handling doesn't get executed every time the function runs regardless
Error_Handling:
'something that you want to happen when the error occurs
End Function
錯誤處理是從Access崩潰一個單獨的問題。即使您達到訪問權限的下限(https://support.office.com/en-us/article/Access-2010-specifications-1E521481-7F9A-46F7-8ED9-EA9DFF1FA854),它也不會崩潰,但會給您一條錯誤消息。這不是你做的一個錯誤。我使用了Access一段時間,有時你必須解決錯誤以及限制。
有時,VBA編譯器在進行更改後無法正確執行任務。如果您剪切並粘貼整個模塊的文本,它似乎會強制編譯器重新編譯整個模塊。總是使用Debug> Compile菜單項來編譯和檢查你的代碼。然後保存。
有時,執行壓縮和修復將解決問題。事實上,你需要壓縮和修復,因爲它看起來文件會不停地膨脹,否則它有2GB的限制。首先進行備份,因爲壓縮和修復有時會失敗,給你留下垃圾。
Magisch給出了一個VB中錯誤處理的例子,這是你應該寫一個強大的應用程序(見http://www.vb6.us/tutorials/error-handling)。
看看反編譯,緊湊和修復以及錯誤處理。大多數崩潰需要修復或反編譯而不是錯誤處理程序。 – Fionnuala
查看全部[Decompile]的答案(http://stackoverflow.com/a/3268188/3820271) – Andre