【发布时间】:2021-10-24 17:49:08
【问题描述】:
Dim ConnDB As ADODB.Connection
Dim RecSet As ADODB.Recordset
Dim ConnStr As String
Dim SQL_Query As String
Dim iCols As Integer
Const ClaimSheet = "Sheet1"
Set ConnDB = New ADODB.Connection
Set RecSet = New ADODB.Recordset
Const SQLServer = "*****"
Const SQLDB = "*****"
ConnStr = "Provider=SQLOLEDB.1;Data Source=" & SQLServer & ";" & _
"Initial Catalog=" & SQLDB & ";" & _
"Integrated Security=SSPI;"
ConnDB.ConnectionTimeout = 3
ConnDB.Open ConnStr
ConnDB.CommandTimeout = 30
SQL_Query = "EXEC [dbo].[Pivot_Claims]"
Set RecSet = ConnDB.Execute(SQL_Query)
If Not RecSet.EOF Then
ThisWorkbook.Sheets(ClaimSheet).Range("B6").CopyFromRecordset RecSet
RecSet.Close
Else
MsgBox "No Records Found"
End If
我正在尝试运行上述 VBA 代码来执行存储过程 (Pivot_Claims) 并将结果粘贴到 ClaimSheet 中。我收到错误消息“对象关闭时不允许操作。”它指向“If Not RecSet.EOF Then”行。
【问题讨论】:
-
您是否关闭了存储过程的计数?
SET NOCOUNT ON
标签: sql-server excel vba