Il s'agit d'un problème courant causé par le nombre de lignes interprété comme la sortie d'une procédure stockée lors de l'utilisation de ADODB
avec SQL Server.
Pour éviter cela, n'oubliez pas de définir
SET NOCOUNT ON;
dans votre procédure stockée, cela empêchera ADODB de renvoyer un jeu d'enregistrements fermé, ou si pour une raison quelconque vous ne voulez pas le faire (vous ne savez pas pourquoi car vous pouvez toujours utiliser @@ROWCOUNT
pour repasser le décompte de lignes), vous pouvez utiliser
'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()
qui renvoie le prochain ADODB.Recordset
si ADODB en a détecté un renvoyé par la procédure stockée (il serait peut-être préférable de vérifier rs.State <> adStateClosed
lorsqu'il s'agit de plusieurs objets ADODB.Recordset).