Я пытаюсь вызвать хранимую процедуру из Excel 2007 VBA.Я хотел бы получить возврат из хранимой процедуры в лист Excel.Но я получаю «Операция 3074 во время выполнения не разрешена, когда объект закрыт» на рабочих листах («Лист1»). Диапазон («А1»). CopyFromRecordset objMyRecordset.
Я выполняю большой поиск беззаключение.Я просто хочу знать, нужно ли мне сначала определить переменную таблицы в хранимой процедуре MSSQL, а затем вставить в нее.
ниже приведены коды, которые я пишу:
****** хранимая процедура sp_weekly ****
select [field1], [field2] into mytable_2 from mytable_1
select a.*, b.field4 from mytable_2 a
inner mytable_3 b on join a.field1 = b.field3
******* в Excel Маркос
Option Explicit
Sub OpenConnection()
Dim objMyConn As ADODB.Connection
Dim objMyCmd As ADODB.Command
Dim objMyRecordset As ADODB.Recordset
Dim ConnectionString As String
Dim CommandText As String
Set objMyConn = CreateObject("ADODB.Connection")
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset
ConnectionString = "Provider=sqloledb;Data Source=abcsql,1433;Initial Catalog=admin;User Id=sa;Password=1234abcd;"
objMyConn.Open ConnectionString
Set objMyCmd.ActiveConnection = objMyConn
CommandText = "exec [admin].[dbo].[sp_weekly]"
objMyCmd.CommandType = adCmdText
Set objMyRecordset.Source = objMyCmd
objMyRecordset.Open
Worksheets("Sheet1").Range("A1").CopyFromRecordset objMyRecordset
end