正如标题所说,我正面临一个问题,我的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
答案 0 :(得分:2)
我从未在End Function
上看到函数停顿,但您的IsAdminErr
子例程未正确清除其错误状态。这样:
GoTo IsAdminCleanUp
应该是:
Resume IsAdminCleanUp
我不希望它能解决任何问题 - 无论如何,本地错误状态应该在退出时被清除。