Detta är ett vanligt problem som orsakas av att radantal tolkas som utdata från en lagrad procedur när du använder ADODB
med SQL Server.
För att undvika detta kom ihåg att ställa in
SET NOCOUNT ON;
i din lagrade procedur kommer detta att stoppa ADODB från att returnera en stängd postuppsättning, eller om du av någon anledning inte vill göra detta (osäker på varför eftersom du alltid kan använda @@ROWCOUNT
för att skicka radräkningen tillbaka), kan du använda
'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()
som returnerar nästa ADODB.Recordset
om ADODB har upptäckt att en returneras av den lagrade förfarandet (kan vara bäst att kontrollera rs.State <> adStateClosed
vid hantering av flera ADODB.Recordset-objekt).