Microsoft Access在函数结束时挂起

时间:2017-11-07 17:44:45

标签: vba ms-access hang

正如标题所说,我正面临一个问题,我的Access应用程序挂起就行(见下文)。这个函数是从某种繁忙的形式调用的。

 End Function

我做了很多研究,试图找出问题所在。

我通过代码看着本地窗口寻找悬挂物体。

我已经确认所有记录集都是适当处理的(事实上恰好没有)。

我已将属性对话框中的任何sql字符串转换为已保存的查询(我认为这会有所帮助,因为表单有很多控件)。

我添加了错误处理函数以查看是否存在任何问题。特别是,错误处理确实可以暂时缓解这个问题。在调用该函数的表单上进行短暂的敲击之后,最终它将重新开始。如果我打开并重新关闭数据库,这也有帮助。这告诉我有些东西在背后膨胀/悬挂,但我不确定还需要检查什么。

非常感谢任何指示,建议或建议

功能

Public Function IsAdmin() As Boolean
On Error GoTo IsAdminErr

Dim errany
IsAdmin = AdminUser ' adminuser is a global variable that is set on file open
Debug.Print ;

 IsAdminCleanUp:

Exit Function

 IsAdminErr:
 If DBEngine.Errors.Count > 1 Then
    'ODBC Error
    For Each errany In DBEngine.Errors
         Debug.Print ; errany.Number
         Debug.Print ; errany.Description
    Next errany
Else  'Access Error    
    Debug.Print ; errany.Number
    Debug.Print ; errany.Description
End If
GoTo IsAdminCleanUp
End Function

1 个答案:

答案 0 :(得分:2)

我从未在End Function上看到函数停顿,但您的IsAdminErr子例程未正确清除其错误状态。这样:

GoTo IsAdminCleanUp

应该是:

Resume IsAdminCleanUp

我不希望它能解决任何问题 - 无论如何,本地错误状态应该在退出时被清除。