【发布时间】:2020-02-22 00:05:16
【问题描述】:
假设我有一个刷新查询表的简单 VBA:
With aListObject.QueryTable
.refresh BackgroundQuery:=False
End With
如果上表在刷新时从SQL引擎返回错误,那么如何获取实际的SQL错误详情?
例如我想要这种类型的消息,在 SQL Server Management Studio 中返回:
消息 8134,级别 16,状态 1,第 1 行
遇到除以零错误。
我可以向 VBA 添加错误处理以返回 VBA 错误:
On Error Resume Next
With aListObject.QueryTable
.refresh BackgroundQuery:=False
if err.number > 0 then msgbox err.Description
End With
On Error GoTo 0
但这只会返回此消息:
SQL 语法错误
如何返回完整的 SQL 错误消息详细信息?
我查看了以下内容,但找不到任何内容:
-
QueryTable对象 (https://docs.microsoft.com/en-us/office/vba/api/excel.querytable) -
QueryTable.Refresh方法 (https://docs.microsoft.com/en-us/office/vba/api/excel.querytable.refresh)
【问题讨论】: