Here is an example of calling an SP with an input parm, return code, output parm, and recordset. It appears that an output parm should be sufficient for your requirements - modify as needed. If you still need help then post the code for your SP.
Function CommandObjectSP()
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
Dim param1 As Parameter, param2 As Parameter, param3 As Parameter, param4 As Parameter
Dim var2 As String, recAffected As Integer
Dim fld As Field, er As Error
Dim connString As String
connString = "Provider=SQLOLEDB.1;Persist Security Info=False; " & _
"User ID=sa;Initial Catalog=msdpn;Data Source=localhost"
cnn.ConnectionString = connString
cnn.Open connString
Set cmd.ActiveConnection = cnn
Set param1 = cmd.CreateParameter("ReturnVal", adSmallInt, adParamReturnValue)
cmd.Parameters.Append param1
Set param2 = cmd.CreateParameter("InInt", adSmallInt, adParamInput)
cmd.Parameters.Append param2
param2.Value = 3
Set param3 = cmd.CreateParameter("Outparm", adVarChar, adParamOutput, 20)
cmd.Parameters.Append param3
param3.Value = "XXXXXX"
' Set up a command object for the stored procedure.
cmd.CommandText = "dbo.sp_supplier"
cmd.CommandType = adCmdStoredProc
Set rst = cmd.Execute
For Each er In cnn.Errors
Debug.Print "error is: "; er.Number; " with value = "; er.description
Next
For Each fld In rst.Fields
Debug.Print "field is: "; fld.name; " with value = "; fld.Value
'-- Debug.Print "field name = "; fld.Value
Next
Debug.Print "return code = "; cmd.Parameters("ReturnVal"

.Value
Debug.Print "input value = "; cmd.Parameters("InInt"

.Value
Debug.Print "output value = "; cmd.Parameters("OutParm"

.Value
End Function