открыть хранимую процедуру mssql из Excel 2007 VBA и получить данные для Excel - PullRequest
0 голосов
/ 28 февраля 2012

Я пытаюсь вызвать хранимую процедуру из Excel 2007 VBA. Я хотел бы получить возврат из хранимой процедуры в лист Excel. Но я получаю 'время выполнения 3074 Операция не разрешена, когда объект закрыт' на рабочих листах ("Sheet1"). Диапазон ("A1"). CopyFromRecordset objMyRecordset

ниже код, который я пишу:

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

1 Ответ

1 голос
/ 28 февраля 2012

Вам необходимо указать, что вы вызываете процедуру следующим образом:

...

Set objMyCmd.ActiveConnection = objMyConn
CommandText = "sp_weekly"
objMyCmd.CommandType = adCmdStoredProc

...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...