Compter les enregistrements d'une requête

Résolu
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009 - 8 août 2006 à 18:34
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 9 août 2006 à 00:50
bonjour à tous,
j'aimerai savoir s'il était possible de compter le nombre d'enregistrement d'une requête.
j'ai essayé et ça ne marche pas
voilà ce que j'ai écris
rc_visu est mon recordset
nb_enr=rc_visu.recordcount
nb_enr est toujours égal à -1

merci d'avance
coordialement

3 réponses

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
9 août 2006 à 00:50
Bonsoir,
Je te propse ceci:

Function NbRecords(rst as Recordset) as Long
NbRecords=0
With rst 

  'il faut remplir le recordset.
  'mais si la table est vide cela provoque unr erreur
  'il faut la contourner avec On Error Resume Next 
 
On Error Resume Next
  .MoveLast
  .MoveFirst
  
  ' Tester si la table est vide
   If .Bof And .Eof Then Exit Function
   NbRecords=.RecordCount
 End With
End Function

MsgBox NbRecords(MonRecorSet)

J' espère que c' est ça
Bon courage
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
8 août 2006 à 18:57
Es-tu sûr que la requête de ton recordset est correcte ?
Tu utilise quelle techonologie ? ADO ? DAO ? Autre ?
0
tri_yann Messages postés 124 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 19 septembre 2013 3
8 août 2006 à 22:21
La fonction recordcount = -1 est connue de Microsoft. C'est un bug répertorié. Je crois ne pas me tromper en disant que le problème est le même en ADO et DAO. Pour compter, il faut boucler dans le recodset :

Function NbRecords(rst as Recordset) as Long
Dim i as Long

i = 0
rst.MoveFirst
Do until rst.EOF
   i = i+1
   rst.MoveNext
Loop

NbRecords = i
End Function

Yann
0
Rejoignez-nous