Comment compter le nom bre de résultat d'une requête

ROBOMATIX Messages postés 2 Date d'inscription jeudi 13 avril 2006 Statut Membre Dernière intervention 9 octobre 2006 - 6 oct. 2006 à 19:02
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 9 oct. 2006 à 18:29
    Bonjour,
Tout est dans le titre...
Merci d'avance à ceux qui pouraient m'aider

9 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 oct. 2006 à 19:08
Salut
Une requète s'exécutant au travers un RecordSet, il suffit de lire monRecordSet.RecordCount
Si tu n'utilise pas de RecordSet, c'est que tout n'est pas dans le titre ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 oct. 2006 à 19:13
et il faut quelque fois faire juste avant un MonRecordSet.MoveLast, suivis d'un MonRecordSet.MoveFirst pour que le RecordCound soit correctement mis à jour

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
7 oct. 2006 à 02:56
Bonsoir,
d' après moi,
c' est pas quelque fois, mais toujours !
mais avant
MonRecordSet.MoveLast
MonRecordSet.First
Il faut
On Error Resume Next
sinon, si le recordset est vide ,
cela provoque une erreur

chaibat
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 oct. 2006 à 19:26
Re
Là, vous métonnez !
Je n'ai jamais fait de MoveLast/First avant de consulter le RecordCount et je n'ai jamais eu de problème (sous ADODB).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
8 oct. 2006 à 20:51
Bonsoir Jack,
En fait , quand je dis "Pour moi c' est toujours...",
c' est en fait une habitude qui a persisté depuis mes
débuts en VB6.
Lorsque je faisais mes premiers pas, j' avais quelques fois
des erreurs quand au rafraissiment des recordsets.
Peut être que ces erreurs ne provenaient pas de là.
mais dans les exemples que je consultais, il y' avait toujours
ce MoveLast/First,et on expliquait ça par le fait qu ' il fallait
remplir le recordset ;
et donc j' ai pris ça pour certitude, et je n' ai jamais
cherché à faire autrement.
Mais peut être ,qu' avec ton avis sur le sujet, le temps est venu pour moi
de m' en débarraser.
Je tenterais le coup dans mes prochaines sources.


amicalement.


chaibat


PS:
Avant je disais toujours :
Je sais, je sais, je sais...
Aujourd' hui, je sais quand ne sais jamais.
Mais ça, je le sais.


disait Jean Gabin
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 oct. 2006 à 09:15
Pour ma part c'était aussi toujours (sous VB6 aussi).
Pour moi ça ne générait pas d'erreur, mais suite à une requette, le RecordCount était systématiquement égal à 1 (s'il y avait des résultats).
Il m'a toujours fallu faire systématiquement un MoveLast/MoveFirst pour raffraichir le RecordCount et avoir effectivement le nombre réel de résultats retournés par la requette.

Astuce qui m'a été donnée par une collègue en son temps, et remarquée depuis dans énormément de sources.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
ROBOMATIX Messages postés 2 Date d'inscription jeudi 13 avril 2006 Statut Membre Dernière intervention 9 octobre 2006
9 oct. 2006 à 13:14
    Voilà comment j'ai fait :
While Not rec_fic.EOF
    nbre_enreg = rec_fic.RecordCount
    rec_fic.MoveNext
Wend

Ca marche !
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 oct. 2006 à 18:28
Robomatix
Reflechis un peu :
Ta boucle ne fait que lire X fois la même donnée, RecordCount
Le nombre d'enregistrements dans ton RecordSet est dans rec_fic.RecordCount.
Pas la peine de la relire 50 fois, elle ne changera pas.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 oct. 2006 à 18:29
PS : La technique pour scanner chaque enregistrement d'un RecordSet est dans TOUTES les sources de vbfrance qui utilisent des ReocrdSet.
Alors, tu en auras chargé et lu au moins une, tu connaitrais la réponse.
0
Rejoignez-nous