gpt4 book ai didi

vba - 确定使用ms-access的ODBC故障(错误3146)的真正原因?

转载 作者:行者123 更新时间:2023-12-04 06:13:44 27 4
gpt4 key购买 nike

我的客户端使用Access作为SQL Server数据库的前端。他们最近开始不时产生ODBC-运行某些报告时会出现3146错误。据我所知,这只是一个通用的ODBC调用失败错误。

我已经尝试在启动报告的VB脚本中添加一些错误处理功能,但是我没有运气获得额外的错误信息。

代码看起来像这样。

Public Function RunReports()
On Error GoTo MyErrorTrap

DoCmd.OpenReport "blah", acViewPreview
DoCmd.Close

DoCmd.OpenReport "foo", acViewPreview
DoCmd.Close

Exit_function:
Exit Function

MyErrorTrap:
Dim errX As DAO.Error
Dim MyError As Error
If Errors.Count > 1 'This always seems to be 0, so no help
For Each errX In DAO.Errors 'These are empty even if dont check for Errors.Count
Debug.Print "ODBC Error"
Debug.Print errX.Number
Debug.Print errX.Description
Next errX
Else
Debug.Print "VBA Error"
Debug.Print Err.Number
Debug.Print Err.Description
End If

'Also have tried checking DBEngine.Errors, but this is empty too

End Function

我还启用了ODBC方面的跟踪功能,但是这使事情陷入了沉迷之中,到目前为止,我无法重新创建ODBC错误。

我完全愿意就如何诊断这一问题提出建议。

最佳答案

使用DbEngine.Errors集合。

Sub Update_Temp()
On Error GoTo ErrorTrap
' Execute connect code at this point
Exit_errortrap:
Exit Sub
ErrorTrap:
Dim myerror As DAO.Error
For Each myerror In DBEngine.Errors
With myerror
If .Number <> 3146 Then
MsgBox .Description
End If
End With
Next
Resume Exit_errortrap

End Sub

要启用此代码,请确保在VBA设置中启用了错误处理。

关于vba - 确定使用ms-access的ODBC故障(错误3146)的真正原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/730414/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com