No no no.
Creo que ultimamente se confunden mucho sobre utilizar el Recordset y utilizar el Execute del objeto de conexion asignado a una variable. ja, que claro hable no?
o usas algo así
Rs.Open SQL, Conexion,3,3
o utilizas algo asi
SET Rs=Conexion.Execute(SQL)
El segundo no es un Recordset es algo así como una simulación es por esto que te manda error en el Rs.Close. Además el Rs De la segunda forma no acepta las pròpiedades que le estas pasando