Ger*_*rta 7 sql-server excel vba excel-vba
我正在做一个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)
Run Code Online (Sandbox Code Playgroud)
如果我在编译代码时遇到语法错误,它会停止,这很好.但是,如果我有另一个问题,例如数据库名称不好,表已经存在,那么程序运行没有错误,我只能检测到我在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
Run Code Online (Sandbox Code Playgroud)
这应该让你开始。您可能会发现您看到的“错误零”实际上是一条状态消息;如果是这样,您将有一些额外的编码要做。
| 归档时间: |
|
| 查看次数: |
9153 次 |
| 最近记录: |