Progressbar-recordcount-groupby

Signaler
Messages postés
120
Date d'inscription
jeudi 31 octobre 2002
Statut
Membre
Dernière intervention
2 août 2004
-
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
-
bonjour

j'ai une requête de sélection (ADO) sur une table de plusieurs centaines de milliers d'enreg

la sélection en extrait 10.000
le recordcount me donne 10.000

MAIS il y a un GROUP BY dans la requête de sorte que je n'ai de 3000 enregs en sortie

je voudrais "tailler" ma progressbar sur 3000 et non 10.000

la requête durant déjà une vingtaine de secondes, je ne peux pas faire un MOVELAST pour déterminer le n° du dernier enreg de sortie (3000ème)

y a t'il un truc ?

VBA sous ACCESS 2002

Merci

Colibri

9 réponses

Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Une fois ta requete faite, un movelast est très rapide et ce n'est pas pénalisant que de le faire pour avoir le bon recordcount. Tu n'as de toute façon aps le choix.

Christophe R.
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2
si ta un group by ds la rekette el ne retournera de toute faco ke 3000 ligne je ne vois pas ton probleme

++
juva

Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation
Messages postés
120
Date d'inscription
jeudi 31 octobre 2002
Statut
Membre
Dernière intervention
2 août 2004

bonjour,

merci pour vos réponses, mais j'avais oublié un point important : je travaille avec le provider IBMDA400 (base dB2 sur AS400).

hors celui-ci ne gère pas la propriété recordcount.
De sorte qu' un movelast ne m'apporte rien de plus.

j'avais pallié cet inconvénient en lançant la requête avec
un count des enregistrements.

Malheureusement, le count ne gère que les enreg en entrée de la requête, pas en sortie.

Auriez vous une idée lumineuse qui permettrait de connaître un n° d'enregistrement alors même que le recordcount n'est pas disponible (là, c'est la colle ...) ?

Colibri
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2
essai ca ko meme :

dim rs as new adodb.recordset

rs.open "ta requete sql", TaConnex, adOpenKeyset, adlockoptimistic

toto=rs.recordscount

rs.close

++
juva

Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation
Messages postés
120
Date d'inscription
jeudi 31 octobre 2002
Statut
Membre
Dernière intervention
2 août 2004

j'en avais bien peur, mais j'ai re essayé, à tout hasard : résultat = -1

ce qui confirme que le recordcount n'est pas pris en charge par le provider.

Tant pis; pour 3.000 enreg en sortie, j'ai 10.000 enreg en entrée, ce qui fait que ma progressbar ne va qu'au tiers de sa longueur; c'est pas bien joli, j'aurais vraiment préféré avoir une solution, mais je suis coincé par mon provider.

Et à ma connaissance, seule cette propriété donne ce genre d'info.

merci

Colibri
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2
sinon ya la méthode bourrin

cpt=0
while not rs.eof
cpt=cpt+1
rs.movenext
wend

a voir le temps que ca met...

++
juva

Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation
Messages postés
120
Date d'inscription
jeudi 31 octobre 2002
Statut
Membre
Dernière intervention
2 août 2004

ben oui,

c'est un peu ce que je me disais.

Par contre je ne l'ai pas essayé; c'est vrai que le plus long, c'est le temps nécessaire à a construction des chemins d'accès aux tables. Mais une fois le recodset construit et connecté, un movefirst après avoir tout compté n'est paut-être pas si long que ça.

je te tiendrais au courant

merci pout cette idée, même si elle fait un peu "bourrrin" !!!

Colibri
Messages postés
120
Date d'inscription
jeudi 31 octobre 2002
Statut
Membre
Dernière intervention
2 août 2004

bien vu !

c'est peut-être un peu bourin, mais ça prend moins de 2 secondes pour compter 6000 enreg !

brillante idée; merci !

Colibri
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2
Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation