2011-02-24 19 views
1

我想構建一個VBA表單,它在執行任何其他操作之前運行SQL Server存儲過程來緩存數據。理想情況下,我不希望使用Excel數據連接,因爲我無法用最少的大驚小怪將它導出到新的工作簿 - 將表單文件中的所有信息都包含在內是很好的。從Excel VBA訪問SQL Server存儲過程(不包含SELECT語句),理想情況下不使用Excel Data Connections?

我知道VBA連接到一個數據庫,沿着這些線路使用代碼的主要途徑:

Dim cnn As New ADODB.Connection 
Dim rst As New ADODB.Recordset 
cnn.Open ConnectionString 
rst.Open QueryText, cnn, adOpenDynamic 

/*Whatever you're doing to the data goes here*/ 

rst.Close 
cnn.Close 

我遇到的問題是,緩存PROC不返回數據集(甚至沒有一個空白的),並且這種類型的連接似乎在沒有數據返回的情況下會引起混亂。如果我不需要,我寧願不修改proc。

在這些限制內是否有可行的解決方案?或者我只是太發牢騷,應該吸取它並使用Excel數據連接或其他東西?

回答

3

我認爲你正在尋找一個ADODB.Command。試試這樣的:

Dim cnn As New ADODB.Connection 
Dim cmd As ADODB.Command 

cnn.Open ConnectionString 
Set cmd = New ADODB.Command 

With cmd 
    .ActiveConnection = cnn 
    .CommandText = "EXEC spNameHere param1" 
    .CommandType = adCmdText 
    .Execute 
End With 
相關問題