2016-02-26 95 views
0

我執行這樣從Excel中的存儲過程:捕獲返回值從ADO記錄集

Sub SPROCmain() 

    Dim conn As ADODB.Connection 
    Dim rs As ADODB.Recordset 

    Set conn = New ADODB.Connection 
    Set rs = New ADODB.Recordset 

    conn.Open connString() 
    conn.CommandTimeout = 0 

    rs.ActiveConnection = conn 
    rs.Open("EXECUTE [datamart].[dbo].[Pop_Main]") 

    MsgBox t 
    Set conn = Nothing 
    Set rs = Nothing 

End Sub 

它工作得很好,轉儲數據到某些表,以備後用。有沒有一種方法可以讓我從這裏獲取存儲過程的返回值,還是我必須去設置新的ADODB.Command的路線?

回答

0

突然這一切是有道理的......

Sub SPROCmain() 

    Dim conn As ADODB.Connection 
    Dim rs As ADODB.Recordset 

    Set conn = New ADODB.Connection 
    Set rs = New ADODB.Recordset 

    conn.Open connString() 
    conn.CommandTimeout = 0 

    rs.ActiveConnection = conn 
    rs.Open ("DECLARE @return_value int " _ 
      & "EXEC @return_value = [datamart].[dbo].[Pop_Main] " _ 
      & "SELECT 'Return Value' = @return_value") 

    MsgBox rs.GetString 

    Set conn = Nothing 
    Set rs = Nothing 

End Sub