加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 在Excel中的VBA中从SQL Server捕获错误消息

发布时间:2021-02-01 18:23:40 所属栏目:MsSql教程 来源:网络整理
导读:我正在做一个excel宏,以便自动执行一些查询,最终我在SQL Server中运行.我的问题是,我不知道如果查询没有成功,服务器如何提醒excel. 例如,我正在导入文件,并且没有语法错误,但如果未正确设置批量插入语句,则可能会导致错误.对于SQL连接,我使用以下内容: Dim c

我正在做一个excel宏,以便自动执行一些查询,最终我在SQL Server中运行.我的问题是,我不知道如果查询没有成功,服务器如何提醒excel.

例如,我正在导入文件,并且没有语法错误,但如果未正确设置批量插入语句,则可能会导致错误.对于SQL连接,我使用以下内容:

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String

' Create the connection string.
sConnString = "Provider=SQLOLEDB;Data Source=localhost;" & _
              "Initial Catalog=" & MyDatabase & ";" & _
              "Integrated Security=SSPI;"

' Create the Connection and Recordset objects.
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.Open sConnString

Set rs = conn.Execute(Myquery)

如果我在编译代码时遇到语法错误,它会停止,这很好.但如果我有另一个问题,e. G.数据库名称不好,表已经存在,然后程序运行没有错误,我只能检测到我在SQL Server中检查它.我真的想知道查询运行是否导致错误,然后将一些警报消息编码到我的宏中.我怎样才能做到这一点?

非常感谢每一位帮助!

解决方法

ADO连接对象有一个Errors集合,您可以在运行SQL后检查它:
conn.Errors.Clear
Set rs = conn.Execute(Myquery) 
If conn.Errors.Count > 0 Then For i = 0 To conn.Errors.Count Debug.Print conn.Error(i).Number Debug.Print conn.Error(i).Source Debug.Print conn.Error(i).Description next i End If

这应该让你开始.你可能会发现你看到一个’错误零’,这实际上是一个状态信息;如果是这样,你将有一些额外的编码要做.

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读