如何解决目标调用已引发VBA SQL连接刷新错误1004异常
我创建了OLEDBD连接,以从sql和VBA代码获取数据以刷新具有给定参数的连接。相同的代码刷新了功能查询连接,并将数据复制并格式化到其他表中。
通常它可以正常工作,但经常会出现运行时错误:“ 1004异常已被调用目标抛出”指出: “ ActiveWorkbook.Connections(” XXX“)。刷新”。当我关闭文件(或所有excel文件)并重新打开它时,它通常可以正常工作。但是我不明白问题出在哪里。文件应由许多其他用户使用,因此使用中应该不会出现问题。有没有更好的方法建立此连接?
Sub Rectangle1_Click()
Dim Customer_ID As String
Customer_ID = "0" & ActiveWorkbook.Sheets("Sheet3").Range("B1").Value
'Pass the Parameters values to the Stored Procedure used in the Data Connection
With ActiveWorkbook.Connections("XXX").OLEDBConnection
.CommandText = "EXEC dbo.ContractProcedure_6 '" & Customer_ID & "'"
ActiveWorkbook.Connections("XXX").Refresh
End With
With ThisWorkbook.Connections("Query - Table_ServiceDB_Query_2020").OLEDBConnection
bRfresh = .BackgroundQuery
.BackgroundQuery = False
.Refresh
.BackgroundQuery = bRfresh
End With
End Sub
解决方法
问题出在这里-与ActiveWorkbook
结合使用的“或所有excel文件”。
长话短说-使用ThisWorkbook
无处不在,而不是ActiveWorkbook
,显然是在引用另一本有效的工作簿,其中没有可用的连接。并参考此以获取更多信息-How to avoid using Select in Excel VBA
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。