2012-02-27 6 views
0

私はVBAによってExcel 2007からストアドプロシージャを呼び出そうとしています。私はストアドプロシージャからExcelシートに戻ることを望みます。しかし、私はワークシート(「シート1」)に 「オブジェクトが閉じているときに実行時に3074の操作が許可されていません」を取得範囲(「A1」)CopyFromRecordset objMyRecordsetExcel 2007のVBAからmssqlストアドプロシージャを開き、データを取得するには

以下

は私が書くコードです:。。

あなたは次のようにプロシージャを呼び出していることを指定する必要が
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

...

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

を...

+0

でも同じ問題が発生します。 fyi、adCmdStoredProcは4 – user1188125

+0

です。ストアドプロシージャの外観はどうなっていますか? –

+0

ストアドプロシージャはselectステートメントを返します – user1188125

関連する問題