2016-11-28 94 views
-1

我是Access中的VBA新手。我建立了一个查询,它使用一些VBA来查询组合框的选择。这很有效,但每隔一段时间Access都会随机崩溃。微软Access - 如何防止VBA崩溃?

是否有任何“如果错误”声明我可以把我的VBA代码,将弹出消息,而不是完全崩溃?

+1

看看反编译,紧凑和修复以及错误处理。大多数崩溃需要修复或反编译而不是错误处理程序。 – Fionnuala

+0

查看全部[Decompile]的答案(http://stackoverflow.com/a/3268188/3820271) – Andre

回答

0

首先,您的普通错误不应导致崩溃。如果确实如此,您可能需要清理一些文件,例如修复或删除/重新编译它。

其次,如果你想在一个简单的方法来处理错误,你可以做到这一点大致是这样的:在您的应用程序

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 
1

错误处理是从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)。