2012-02-27 57 views
0

我嘗試使用VBA從Excel 2007中調用存儲過程。我想從存儲過程返回到Excel表單。 。但我得到的 「運行時,當對象被關閉3074不允許操作」的工作表(「工作表Sheet1」)範圍(「A1」)CopyFromRecordset objMyRecordset從excel 2007 VBA打開mssql存儲過程並將數據導入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 

回答

1

您需要指定要調用的程序如下:

...

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

...

+0

仍然會遇到同樣的問題。 fyi,adCmdStoredProc是4 – user1188125 2012-02-27 22:15:30

+0

存儲過程是什麼樣的? – 2012-02-27 23:01:36

+0

存儲過程返回一個select語句 – user1188125 2012-02-28 16:22:51