Microsoft Access 2010托管代码加载项 - 应用程序挂起

时间:2012-08-13 12:10:48

标签: visual-studio ms-access add-in

我知道我之前已经有了这个,但我不记得如何绕过它。

我构建了一个托管代码加载项,除了一件事之外还可以正常工作。当我尝试关闭Access应用程序时,应用程序窗口仍然存在,除非我结束任务。当我使用Visual Studio 2010调试加载项时,当我停止调试时,它会正常关闭。

我将所有变量设置为无关闭事件的一部分。

Public Sub OnDisconnection(ByVal RemoveMode As Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnDisconnection
    'On Error Resume Next
    If Not MenuCommandControls Is Nothing Then MenuCommandControls.Delete()
    If Not MenuCommandDimensionVariable Is Nothing Then MenuCommandDimensionVariable.Delete()
    If Not MenuCommandFields Is Nothing Then MenuCommandFields.Delete()
    If Not MenuCommandForms Is Nothing Then MenuCommandForms.Delete()
    If Not MenuCommandParseSQL Is Nothing Then MenuCommandParseSQL.Delete()
    If Not MenuCommandQueries Is Nothing Then MenuCommandQueries.Delete()
    If Not MenuCommandReports Is Nothing Then MenuCommandReports.Delete()
    If Not MenuCommandTables Is Nothing Then MenuCommandTables.Delete()
    If Not MenuCommandVariables Is Nothing Then MenuCommandVariables.Delete()
    If Not searchForm Is Nothing Then searchForm.Close() : searchForm = Nothing
    If Not ObjectSetting Is Nothing Then ObjectSetting = Nothing
    If Not AccessInst Is Nothing Then AccessInst = Nothing
    If Not addInInstance Is Nothing Then addInInstance = Nothing
    'If Not FormParseSQL Is Nothing Then FormParseSQL = Nothing
    applicationObject.Quit(Access.AcQuitOption.acQuitPrompt)
    If Not applicationObject Is Nothing Then applicationObject = Nothing

End Sub

1 个答案:

答案 0 :(得分:0)

将x作为可选整数添加到子程序

创建一个退出应用程序按钮和 设置x = 1 调用您的子例程,并将Optional x值传递给它。 把application.quit命令放在

在子程序的底部,如果x = 1则为application.quit。

通过退出应用程序按钮调用ONdisconnect子程序。

禁用所有其他退出应用程序的方法。

简单,简单且实用。

这样,当发生断开连接或关闭应用程序时,Ondisconnect将正常工作。