cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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 #
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 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
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 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.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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 #
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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.