Este es un problema común causado por el recuento de filas que se interpreta como salida de un procedimiento almacenado cuando se usa ADODB
con SQL Server.
Para evitar esto, recuerde configurar
SET NOCOUNT ON;
en su procedimiento almacenado, esto evitará que ADODB devuelva un conjunto de registros cerrado, o si por alguna razón no desea hacer esto (no estoy seguro de por qué, ya que siempre puede usar @@ROWCOUNT
para pasar el conteo de filas hacia atrás), puede usar
'Return the next recordset, which will be the result of the Stored Procedure, not
'the row count generated when SET NOCOUNT OFF (default).
Set rs = rs.NextRecordset()
que devuelve el siguiente ADODB.Recordset
si ADODB ha detectado uno devuelto por el procedimiento almacenado (podría ser mejor verificar rs.State <> adStateClosed
cuando se trata de múltiples objetos ADODB.Recordset).