Je te mets la doc :
Propriété RecordCount
Indique le nombre actuel d'enregistrements dans un objet Recordset.
Valeur de retour
Renvoie une valeur de type Long.
Remarques
Vous utilisez la propriété RecordCount pour connaître le nombre d'enregistrements contenus dans un objet Recordset. La propriété renvoie la valeur -1 lorsqu'ADO ne peut pas déterminer le nombre d'enregistrements ou si le fournisseur ou le type de curseur ne peuvent pas prendre en charge RecordCount. La lecture de la propriété RecordCount alors que le Recordset est fermé génère un message d'erreur.
Si l'objet Recordset accepte le positionnement approximatif, ou les signets, c'est-à-dire que respectivement Supports (adApproxPosition) ou Supports (adBookmark) renvoie la valeur True, cette valeur sera le nombre exact d'enregistrements du Recordset qu'il soit complet ou non. Si l'objet Recordset n'accepte pas le positionnement approximatif, cette propriété peut peser lourdement sur les ressources sachant que tous les enregistrements devront être extraits et comptés pour qu'une valeur RecordCount exacte puisse être renvoyée.
Du type de curseur de l'objet Recordset dépend si le nombre d'enregistrements peut être déterminé. La propriété RecordCount renvoie -1 pour un curseur vers l'avant seulement, le compte effectif pour un curseur statique ou entré par clavier, et soit -1 ou le compte effectif, selon la source des données, pour un curseur dynamique.
Le dernier paragraphe te dit pourquoi tu reçois -1.
De plus je vois que tes requêtes renvoient déjà une valeur de compte, donc 1 seule ligne.
Tu peux donc mettre en requête
sql1 = "select count(*) AS NBLIGNE1 from T_FIL"
sql2 = "select count(*) AS NBLIGNE2 from T_Traduction " & _
" where CD_LANGUE = 'ENG'" & _
" and TBLE = 'T_FIL'"
Dans la suite de ton compte, tu peux comparer
if oRs1![NBLIGNE1] = oRs2![NBLIGNE2]
Autre solution
sql1 = "select * from T_FIL"
sql2 = "select * from T_Traduction " & _
" where CD_LANGUE = 'ENG'" & _
" and TBLE = 'T_FIL'"
Tu ouvres tes recordsets comme suit :
oRs1.Open sql1, CODB, adOpenSnapshot, adLockReadOnly, -1
rs1.MoveLast
Dans la suite de ton compte, tu peux comparer
if oRs1.RecordCount = oRs2.RecordCount