2016-02-26 1 views
0

recordset J'exécute une procédure stockée à partir d'Excel ainsi:capture valeur de retour de bruit

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 

Il fonctionne très bien, les décharges données dans des tables pour une utilisation ultérieure. Y at-il un moyen pour moi d'obtenir la valeur de retour de la procédure stockée ici, ou dois-je aller la route où j'ai mis en place un nouveau ADODB.Command?

Répondre

0

Tout à coup, tout fait sens ...

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