Progressbar-recordcount-groupby

carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004 - 25 juin 2004 à 10:32
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 - 29 juin 2004 à 18:49
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

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
25 juin 2004 à 12:09
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.
0
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
25 juin 2004 à 13:54
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
0
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004
28 juin 2004 à 10:20
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
0
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
28 juin 2004 à 12:57
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
0

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

Posez votre question
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004
28 juin 2004 à 14:15
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
0
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
28 juin 2004 à 16:36
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
0
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004
29 juin 2004 à 16:55
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
0
carnez Messages postés 120 Date d'inscription jeudi 31 octobre 2002 Statut Membre Dernière intervention 2 août 2004
29 juin 2004 à 18:41
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
0
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
29 juin 2004 à 18:49
Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation
0
Rejoignez-nous