簡體   English   中英

從Excel VBA訪問SQL Server存儲過程(不包含SELECT語句),理想情況下不使用Excel數據連接?

[英]Accessing an SQL Server stored procedure (containing no SELECT statement) from Excel VBA, ideally without using Excel Data Connections?

我正在嘗試構建一個VBA表單,該表單運行SQL Server存儲過程來緩存數據,然后再執行其他任何操作。 理想情況下,我不希望使用Excel數據連接,因為那樣我就無法將其導出到新的工作簿中,而不必大驚小怪-最好將所有信息都包含在表單文件中。

我知道將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

我遇到的問題是緩存過程不會返回數據集(甚至不是空白數據集),並且如果沒有返回數據,這種連接似乎會引起麻煩。 而且,如果不需要的話,我不想修改該過程。

在這些約束條件下是否存在可行的解決方案? 還是我只是太煩躁而應該吸干它並使用Excel數據連接之類的東西?

我認為您正在尋找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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM