Mon appli vb6 utilise en base access 2000. Je souhaiterais=20
r=E9cup=E9rer le nombre de lignes d'une table qui fait pr=E8s de=20
50000 lignes.
J'ai bien essay=E9 avec un SELECT COUNT ou encore des trucs=20
du genre Rs.MoveLast puis Rs.Recordcount mais c'est=20
monstrueusement long.
Existe t il un moyen d'obtenir ce nombre de lignes de=20
mani=E8re quasi instantan=E9e, ou dois-je en etre reduit =E0=20
faire patienter l'utilisateur 30 secondes =E0 chaque=20
d=E9marrage de l'appli, le temps de compter le nombre de=20
lignes ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
seb-seb
y suffisait de les compter dans une variable sauvegardée sinon
"Nicolas" a écrit dans le message de news:053f01c3be3e$59e89390$ Bonjour,
Mon appli vb6 utilise en base access 2000. Je souhaiterais récupérer le nombre de lignes d'une table qui fait près de 50000 lignes.
J'ai bien essayé avec un SELECT COUNT ou encore des trucs du genre Rs.MoveLast puis Rs.Recordcount mais c'est monstrueusement long.
Existe t il un moyen d'obtenir ce nombre de lignes de manière quasi instantanée, ou dois-je en etre reduit à faire patienter l'utilisateur 30 secondes à chaque démarrage de l'appli, le temps de compter le nombre de lignes ?
Merci d'avance pour toute astuce
Nicolas
y suffisait de les compter dans une variable sauvegardée sinon
"Nicolas" <nicolasheurtevin@wanadoo.fr> a écrit dans le message de
news:053f01c3be3e$59e89390$a001280a@phx.gbl...
Bonjour,
Mon appli vb6 utilise en base access 2000. Je souhaiterais
récupérer le nombre de lignes d'une table qui fait près de
50000 lignes.
J'ai bien essayé avec un SELECT COUNT ou encore des trucs
du genre Rs.MoveLast puis Rs.Recordcount mais c'est
monstrueusement long.
Existe t il un moyen d'obtenir ce nombre de lignes de
manière quasi instantanée, ou dois-je en etre reduit à
faire patienter l'utilisateur 30 secondes à chaque
démarrage de l'appli, le temps de compter le nombre de
lignes ?
y suffisait de les compter dans une variable sauvegardée sinon
"Nicolas" a écrit dans le message de news:053f01c3be3e$59e89390$ Bonjour,
Mon appli vb6 utilise en base access 2000. Je souhaiterais récupérer le nombre de lignes d'une table qui fait près de 50000 lignes.
J'ai bien essayé avec un SELECT COUNT ou encore des trucs du genre Rs.MoveLast puis Rs.Recordcount mais c'est monstrueusement long.
Existe t il un moyen d'obtenir ce nombre de lignes de manière quasi instantanée, ou dois-je en etre reduit à faire patienter l'utilisateur 30 secondes à chaque démarrage de l'appli, le temps de compter le nombre de lignes ?
Merci d'avance pour toute astuce
Nicolas
Jamal I
Bonjour Nicolas,
Je viens d'effectuer des tests tu as deux solutions pour faire: -Soit tu fais un "Select count(Tu mets le champ qui fais office de clé primaire)" dans table pour 50000 lignes ça devrait couté à peu prés 0 secondes il ne faut pas faire un "Select count(*)" il prend plus de temps - Ou tu fais un Rs.RecordCount avec une ouverture de curseur avec le paramétre "adOpenKeyset".
Sur les deux cas j'ai fais le test sur plus 150000 enregistrements, il a mis moins d'une seconde.
Cdt, Jamal I
"Nicolas" a écrit dans le message de news:053f01c3be3e$59e89390$ Bonjour,
Mon appli vb6 utilise en base access 2000. Je souhaiterais récupérer le nombre de lignes d'une table qui fait près de 50000 lignes.
J'ai bien essayé avec un SELECT COUNT ou encore des trucs du genre Rs.MoveLast puis Rs.Recordcount mais c'est monstrueusement long.
Existe t il un moyen d'obtenir ce nombre de lignes de manière quasi instantanée, ou dois-je en etre reduit à faire patienter l'utilisateur 30 secondes à chaque démarrage de l'appli, le temps de compter le nombre de lignes ?
Merci d'avance pour toute astuce
Nicolas
Bonjour Nicolas,
Je viens d'effectuer des tests tu as deux solutions pour faire:
-Soit tu fais un "Select count(Tu mets le champ qui fais office de clé
primaire)" dans table pour 50000 lignes ça devrait couté à peu prés 0
secondes il ne faut pas faire un "Select count(*)" il prend plus de temps
- Ou tu fais un Rs.RecordCount avec une ouverture de curseur avec le
paramétre "adOpenKeyset".
Sur les deux cas j'ai fais le test sur plus 150000 enregistrements, il a mis
moins d'une seconde.
Cdt,
Jamal I
"Nicolas" <nicolasheurtevin@wanadoo.fr> a écrit dans le message de
news:053f01c3be3e$59e89390$a001280a@phx.gbl...
Bonjour,
Mon appli vb6 utilise en base access 2000. Je souhaiterais
récupérer le nombre de lignes d'une table qui fait près de
50000 lignes.
J'ai bien essayé avec un SELECT COUNT ou encore des trucs
du genre Rs.MoveLast puis Rs.Recordcount mais c'est
monstrueusement long.
Existe t il un moyen d'obtenir ce nombre de lignes de
manière quasi instantanée, ou dois-je en etre reduit à
faire patienter l'utilisateur 30 secondes à chaque
démarrage de l'appli, le temps de compter le nombre de
lignes ?
Je viens d'effectuer des tests tu as deux solutions pour faire: -Soit tu fais un "Select count(Tu mets le champ qui fais office de clé primaire)" dans table pour 50000 lignes ça devrait couté à peu prés 0 secondes il ne faut pas faire un "Select count(*)" il prend plus de temps - Ou tu fais un Rs.RecordCount avec une ouverture de curseur avec le paramétre "adOpenKeyset".
Sur les deux cas j'ai fais le test sur plus 150000 enregistrements, il a mis moins d'une seconde.
Cdt, Jamal I
"Nicolas" a écrit dans le message de news:053f01c3be3e$59e89390$ Bonjour,
Mon appli vb6 utilise en base access 2000. Je souhaiterais récupérer le nombre de lignes d'une table qui fait près de 50000 lignes.
J'ai bien essayé avec un SELECT COUNT ou encore des trucs du genre Rs.MoveLast puis Rs.Recordcount mais c'est monstrueusement long.
Existe t il un moyen d'obtenir ce nombre de lignes de manière quasi instantanée, ou dois-je en etre reduit à faire patienter l'utilisateur 30 secondes à chaque démarrage de l'appli, le temps de compter le nombre de lignes ?
Merci d'avance pour toute astuce
Nicolas
Nicolas
Merci Jamal pour ta réponse détaillée. J'ai omis de préciser que je travaillais sur des tables SAGE de gestion commerciale attachées en ODBC (DSN créé sur les fichiers *.gcm et *.mae)
Il est évident que pour des tables locales, le résultat est instantané, mais qu'en est-il pour des tables attachées ?
Merci
Nicolas
Merci Jamal pour ta réponse détaillée.
J'ai omis de préciser que je travaillais sur des tables
SAGE de gestion commerciale attachées en ODBC (DSN créé
sur les fichiers *.gcm et *.mae)
Il est évident que pour des tables locales, le résultat
est instantané, mais qu'en est-il pour des tables
attachées ?
Merci Jamal pour ta réponse détaillée. J'ai omis de préciser que je travaillais sur des tables SAGE de gestion commerciale attachées en ODBC (DSN créé sur les fichiers *.gcm et *.mae)
Il est évident que pour des tables locales, le résultat est instantané, mais qu'en est-il pour des tables attachées ?
Merci
Nicolas
Jamal I
Ce que je te conseille dans ce cas là au lieu de passer par les tables attachés via Access, Je te suggére d'ouvrir une connection ADO ou DAO (si tu veux) vers ces sources ODBC chacune et de faire comme je l'ai indiqué dans ma première réponse un "Select COUNT(Clé primaire)" de la table qui t'intéresse. Si tu n'as pas un champ avec une clé, tu prends un champ indexé sinon tu prends le champ ayant la plus petite taille.
Je pense que tu devrais gagner du temps comme ça, tiens moi au courant.
Courage, Jamal I
"Nicolas" a écrit dans le message de news:0e7201c3be59$2ce667d0$ Merci Jamal pour ta réponse détaillée. J'ai omis de préciser que je travaillais sur des tables SAGE de gestion commerciale attachées en ODBC (DSN créé sur les fichiers *.gcm et *.mae)
Il est évident que pour des tables locales, le résultat est instantané, mais qu'en est-il pour des tables attachées ?
Merci
Nicolas
Ce que je te conseille dans ce cas là au lieu de passer par les tables
attachés via Access, Je te suggére d'ouvrir une connection ADO ou DAO (si tu
veux) vers ces sources ODBC chacune et de faire comme je l'ai indiqué dans
ma première réponse un "Select COUNT(Clé primaire)" de la table qui
t'intéresse. Si tu n'as pas un champ avec une clé, tu prends un champ indexé
sinon tu prends le champ ayant la plus petite taille.
Je pense que tu devrais gagner du temps comme ça, tiens moi au courant.
Courage,
Jamal I
"Nicolas" <nicolasheurtevin@wanadoo.fr> a écrit dans le message de
news:0e7201c3be59$2ce667d0$a301280a@phx.gbl...
Merci Jamal pour ta réponse détaillée.
J'ai omis de préciser que je travaillais sur des tables
SAGE de gestion commerciale attachées en ODBC (DSN créé
sur les fichiers *.gcm et *.mae)
Il est évident que pour des tables locales, le résultat
est instantané, mais qu'en est-il pour des tables
attachées ?
Ce que je te conseille dans ce cas là au lieu de passer par les tables attachés via Access, Je te suggére d'ouvrir une connection ADO ou DAO (si tu veux) vers ces sources ODBC chacune et de faire comme je l'ai indiqué dans ma première réponse un "Select COUNT(Clé primaire)" de la table qui t'intéresse. Si tu n'as pas un champ avec une clé, tu prends un champ indexé sinon tu prends le champ ayant la plus petite taille.
Je pense que tu devrais gagner du temps comme ça, tiens moi au courant.
Courage, Jamal I
"Nicolas" a écrit dans le message de news:0e7201c3be59$2ce667d0$ Merci Jamal pour ta réponse détaillée. J'ai omis de préciser que je travaillais sur des tables SAGE de gestion commerciale attachées en ODBC (DSN créé sur les fichiers *.gcm et *.mae)
Il est évident que pour des tables locales, le résultat est instantané, mais qu'en est-il pour des tables attachées ?