2016-02-26 96 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