If your stored procedures have OUTPUT parameters then you should use the ADODB.Command object like this
Dim conn As ADODB.Connection
Set conn = NEW ADODB.Connection
Dim cmd AS ADODB.Command
Set cmd = NEW ADODB.Command
Dim rs as ADOSB.RecordSet
conn.ConnectionString = ....
conn.Open
Set cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "sp_SomeProc"
cmd.Parameters("CustID"

.Value = ...
.
.
.
.
Set rs = cmd.Execute
MsgBox cmd.Parameters("AccountBalance"

.Value
If your stored procedure does not return a recordset then you don't need to pipe it into one and can actually speed it up by useing the adExecuteNoRecords option.
On the way out you can look at the parameters collections values for anything that should have changed.