Amigo
Duas considerações pra vc...
Primeiro: Se vc quer o RecordCount, vai ter q configurar o CursorType e o LockType do seu recordset...os valore padrao nao permitem usar o Recordcount e o AbsolutePosition...
Faz assim:
Set rs = New Adodb.Recordset
Set rs.ActiveConnection = db
rs.CursorType = adOpenKeySet
rs.CursorLocation = adLockOptimistic ' ou adLockPessimistic
rs.Open sql
Ou entao vc pode resumir em um unico comando assim:
Set rs = New Adodb.Recordset
rs.Open sql, db, adOpenKeySet, adLockOptimistic
dai vc pode usar o Recordcount, o AbsolutePosition e o AbsolutePage
Mas amigo, vc perguntou sobre o RecordsAffecteds... e isso eh uma propriedade do objeto ADODB.Connection. O RecordCount retorna quantos registros existem no seu recordset... mas vc pode saber quantos registros foram afetados em um INSERT, UPDATE ou DELETE, fazendo assim:
Dim ra As Long 'essa variavel receve o nro de regs afetados
sql = "DELETE FROM cCliente" 'por exemplo
db.Execute sql, ra
Msgbox ra
ra deve mostrar o numero de registros afetados pelo comando... isso eh muito util pra vc saber se nao houve em instruçoes executadas dentro do proprio banco, como um Delete ou uma SP...
Espero ter ajudado vc... Abraços