使用 ms-access 确定 ODBC 失败(错误 3146)的真正原因?
我的客户使用 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 错误。
我完全愿意接受有关如何诊断此问题的建议。
My client is using Access as a front end to a SQL Server database. They recently started getting ODBC - 3146 errors from time to time when running some reports. From what I can tell, this is just a generic ODBC call failed error.
I've tried sticking some error handling in the VB script that is launching the reports, but I am not having any luck getting extra error information.
Code looks a bit like this.
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
I've also enabled tracing on the ODBC side, but that has bogged things down way too much, and I am so far unable to recreate the ODBC error.
I am completely open for suggestions on how to diagnose this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
DbEngine.Errors
集合。要启用此代码,请确保在 VBA 设置中打开错误处理。
Use the
DbEngine.Errors
collection.To enable this code, make sure in VBA settings that error handling is turned on.