operation not allowed when the object is closed when running more advanced query
This is a common problem caused by row counts being interpreted as output from a Stored Procedure when using ADODB
with SQL Server.
To avoid this remember to set
SET NOCOUNT ON;
in your Stored Procedure this will stop ADODB returning a closed recordset, or if for whatever reason you don't want to do this (not sure why as you can always use @@ROWCOUNT
to pass the row count back), you can use
'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()
which returns the next ADODB.Recordset
if ADODB has detected one being returned by the Stored Procedure (might be best to check rs.State <> adStateClosed
when dealing with multiple ADODB.Recordset objects).