Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois
l'information en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que
je veux, je n'ai pas le choix de faire une boucle. La méthode la plus
rapide que j'ai trouvé est de mettre l'information dans un tableau et
ensuite remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets
WHERE [Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle
prend environ 15 secondes à s'exécuter avant que je vois
l'information apparaître dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc
j'aimerais éviter les ActiveX.
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois
l'information en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que
je veux, je n'ai pas le choix de faire une boucle. La méthode la plus
rapide que j'ai trouvé est de mettre l'information dans un tableau et
ensuite remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets
WHERE [Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle
prend environ 15 secondes à s'exécuter avant que je vois
l'information apparaître dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc
j'aimerais éviter les ActiveX.
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois
l'information en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que
je veux, je n'ai pas le choix de faire une boucle. La méthode la plus
rapide que j'ai trouvé est de mettre l'information dans un tableau et
ensuite remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets
WHERE [Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle
prend environ 15 secondes à s'exécuter avant que je vois
l'information apparaître dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc
j'aimerais éviter les ActiveX.
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois l'information
en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
veux, je n'ai pas le choix de faire une boucle. La méthode la plus rapide
que j'ai trouvé est de mettre l'information dans un tableau et ensuite
remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets WHERE
[Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle prend
environ 15 secondes à s'exécuter avant que je vois l'information
dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup plus
rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc j'aimerais
éviter les ActiveX.
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois l'information
en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
veux, je n'ai pas le choix de faire une boucle. La méthode la plus rapide
que j'ai trouvé est de mettre l'information dans un tableau et ensuite
remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets WHERE
[Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle prend
environ 15 secondes à s'exécuter avant que je vois l'information
dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup plus
rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc j'aimerais
éviter les ActiveX.
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois l'information
en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
veux, je n'ai pas le choix de faire une boucle. La méthode la plus rapide
que j'ai trouvé est de mettre l'information dans un tableau et ensuite
remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets WHERE
[Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle prend
environ 15 secondes à s'exécuter avant que je vois l'information
dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup plus
rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc j'aimerais
éviter les ActiveX.
Salut,
Oui deja du VBA c'est plus lent à la base (interprété). Il faut soit trier
les enregistrements pour s'arranger d'en avoir moins soit d'essayer de
cacher la listbox pendant l'ajout :
oMaListe.Visible = False
For [...]
[...]
Call oMaListe.Additem([...])
[...]
Next [...]
oMaListe.Visible = True
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Dominic Feron wrote:
> Bonjours à tous!
>
> Je suis en train de remplir une listBox avec des données que je vais
> chercher via SQL Server. La requête que j'exécute me renvois
> l'information en moins 2 secondes.
>
> Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que
> je veux, je n'ai pas le choix de faire une boucle. La méthode la plus
> rapide que j'ai trouvé est de mettre l'information dans un tableau et
> ensuite remplir ma liste comme suit:
>
>
> strRequete = "SELECT [No.], [Description] FROM ListeProjets
> WHERE [Etat du projet] = 0 " & _
> "ORDER BY [No.]"
>
> 'Ouvre la connexion SQl
> objSQLConnexion.OpenSQLConnection
>
> 'Éxécute la requête SQL
> objSQLConnexion.OpenRecordSet strRequete, rs
>
> 'Je met mon SELECT dans mon tableau
> Tarray() = rs.GetRows
>
> 'On ferme la connexion
> objSQLConnexion.CloseSQLConnection rs
>
>
> 'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
> For i = 0 To UBound(Tarray, 2)
>
> lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
>
> Next
>
> La requête SQL me retourne environ 5000 enregistrements. La boucle
> prend environ 15 secondes à s'exécuter avant que je vois
> l'information apparaître dans ma liste.
>
> Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
> plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
> facilitrait la vie?
>
> Merci beaucoup!
>
> PS: À noter que ce code est utiliser dans une macro Excel, donc
> j'aimerais éviter les ActiveX.
Salut,
Oui deja du VBA c'est plus lent à la base (interprété). Il faut soit trier
les enregistrements pour s'arranger d'en avoir moins soit d'essayer de
cacher la listbox pendant l'ajout :
oMaListe.Visible = False
For [...]
[...]
Call oMaListe.Additem([...])
[...]
Next [...]
oMaListe.Visible = True
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Dominic Feron wrote:
> Bonjours à tous!
>
> Je suis en train de remplir une listBox avec des données que je vais
> chercher via SQL Server. La requête que j'exécute me renvois
> l'information en moins 2 secondes.
>
> Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que
> je veux, je n'ai pas le choix de faire une boucle. La méthode la plus
> rapide que j'ai trouvé est de mettre l'information dans un tableau et
> ensuite remplir ma liste comme suit:
>
>
> strRequete = "SELECT [No.], [Description] FROM ListeProjets
> WHERE [Etat du projet] = 0 " & _
> "ORDER BY [No.]"
>
> 'Ouvre la connexion SQl
> objSQLConnexion.OpenSQLConnection
>
> 'Éxécute la requête SQL
> objSQLConnexion.OpenRecordSet strRequete, rs
>
> 'Je met mon SELECT dans mon tableau
> Tarray() = rs.GetRows
>
> 'On ferme la connexion
> objSQLConnexion.CloseSQLConnection rs
>
>
> 'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
> For i = 0 To UBound(Tarray, 2)
>
> lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
>
> Next
>
> La requête SQL me retourne environ 5000 enregistrements. La boucle
> prend environ 15 secondes à s'exécuter avant que je vois
> l'information apparaître dans ma liste.
>
> Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
> plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
> facilitrait la vie?
>
> Merci beaucoup!
>
> PS: À noter que ce code est utiliser dans une macro Excel, donc
> j'aimerais éviter les ActiveX.
Salut,
Oui deja du VBA c'est plus lent à la base (interprété). Il faut soit trier
les enregistrements pour s'arranger d'en avoir moins soit d'essayer de
cacher la listbox pendant l'ajout :
oMaListe.Visible = False
For [...]
[...]
Call oMaListe.Additem([...])
[...]
Next [...]
oMaListe.Visible = True
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Dominic Feron wrote:
> Bonjours à tous!
>
> Je suis en train de remplir une listBox avec des données que je vais
> chercher via SQL Server. La requête que j'exécute me renvois
> l'information en moins 2 secondes.
>
> Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que
> je veux, je n'ai pas le choix de faire une boucle. La méthode la plus
> rapide que j'ai trouvé est de mettre l'information dans un tableau et
> ensuite remplir ma liste comme suit:
>
>
> strRequete = "SELECT [No.], [Description] FROM ListeProjets
> WHERE [Etat du projet] = 0 " & _
> "ORDER BY [No.]"
>
> 'Ouvre la connexion SQl
> objSQLConnexion.OpenSQLConnection
>
> 'Éxécute la requête SQL
> objSQLConnexion.OpenRecordSet strRequete, rs
>
> 'Je met mon SELECT dans mon tableau
> Tarray() = rs.GetRows
>
> 'On ferme la connexion
> objSQLConnexion.CloseSQLConnection rs
>
>
> 'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
> For i = 0 To UBound(Tarray, 2)
>
> lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
>
> Next
>
> La requête SQL me retourne environ 5000 enregistrements. La boucle
> prend environ 15 secondes à s'exécuter avant que je vois
> l'information apparaître dans ma liste.
>
> Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
> plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
> facilitrait la vie?
>
> Merci beaucoup!
>
> PS: À noter que ce code est utiliser dans une macro Excel, donc
> j'aimerais éviter les ActiveX.
Bonsoir,
Tu as essaye de lire tes donnees et de les placer directemetn dans ta
ca t'evite d epasser par un tableau et de moin encombre la memoire.
bonne chance.
Salva
"Dominic Feron" a écrit dans le message
news:
> Bonjours à tous!
>
> Je suis en train de remplir une listBox avec des données que je vais
> chercher via SQL Server. La requête que j'exécute me renvois
> en moins 2 secondes.
>
> Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
> veux, je n'ai pas le choix de faire une boucle. La méthode la plus
> que j'ai trouvé est de mettre l'information dans un tableau et ensuite
> remplir ma liste comme suit:
>
>
> strRequete = "SELECT [No.], [Description] FROM ListeProjets
> [Etat du projet] = 0 " & _
> "ORDER BY [No.]"
>
> 'Ouvre la connexion SQl
> objSQLConnexion.OpenSQLConnection
>
> 'Éxécute la requête SQL
> objSQLConnexion.OpenRecordSet strRequete, rs
>
> 'Je met mon SELECT dans mon tableau
> Tarray() = rs.GetRows
>
> 'On ferme la connexion
> objSQLConnexion.CloseSQLConnection rs
>
>
> 'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
> For i = 0 To UBound(Tarray, 2)
>
> lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
>
> Next
>
> La requête SQL me retourne environ 5000 enregistrements. La boucle prend
> environ 15 secondes à s'exécuter avant que je vois l'information
apparaître
> dans ma liste.
>
> Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
> rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
> facilitrait la vie?
>
> Merci beaucoup!
>
> PS: À noter que ce code est utiliser dans une macro Excel, donc
> éviter les ActiveX.
>
>
>
Bonsoir,
Tu as essaye de lire tes donnees et de les placer directemetn dans ta
ca t'evite d epasser par un tableau et de moin encombre la memoire.
bonne chance.
Salva
"Dominic Feron" <dominic.feron@dessausoprin.com> a écrit dans le message
news: eq90UX6tEHA.2196@TK2MSFTNGP14.phx.gbl...
> Bonjours à tous!
>
> Je suis en train de remplir une listBox avec des données que je vais
> chercher via SQL Server. La requête que j'exécute me renvois
> en moins 2 secondes.
>
> Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
> veux, je n'ai pas le choix de faire une boucle. La méthode la plus
> que j'ai trouvé est de mettre l'information dans un tableau et ensuite
> remplir ma liste comme suit:
>
>
> strRequete = "SELECT [No.], [Description] FROM ListeProjets
> [Etat du projet] = 0 " & _
> "ORDER BY [No.]"
>
> 'Ouvre la connexion SQl
> objSQLConnexion.OpenSQLConnection
>
> 'Éxécute la requête SQL
> objSQLConnexion.OpenRecordSet strRequete, rs
>
> 'Je met mon SELECT dans mon tableau
> Tarray() = rs.GetRows
>
> 'On ferme la connexion
> objSQLConnexion.CloseSQLConnection rs
>
>
> 'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
> For i = 0 To UBound(Tarray, 2)
>
> lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
>
> Next
>
> La requête SQL me retourne environ 5000 enregistrements. La boucle prend
> environ 15 secondes à s'exécuter avant que je vois l'information
apparaître
> dans ma liste.
>
> Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
> rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
> facilitrait la vie?
>
> Merci beaucoup!
>
> PS: À noter que ce code est utiliser dans une macro Excel, donc
> éviter les ActiveX.
>
>
>
Bonsoir,
Tu as essaye de lire tes donnees et de les placer directemetn dans ta
ca t'evite d epasser par un tableau et de moin encombre la memoire.
bonne chance.
Salva
"Dominic Feron" a écrit dans le message
news:
> Bonjours à tous!
>
> Je suis en train de remplir une listBox avec des données que je vais
> chercher via SQL Server. La requête que j'exécute me renvois
> en moins 2 secondes.
>
> Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
> veux, je n'ai pas le choix de faire une boucle. La méthode la plus
> que j'ai trouvé est de mettre l'information dans un tableau et ensuite
> remplir ma liste comme suit:
>
>
> strRequete = "SELECT [No.], [Description] FROM ListeProjets
> [Etat du projet] = 0 " & _
> "ORDER BY [No.]"
>
> 'Ouvre la connexion SQl
> objSQLConnexion.OpenSQLConnection
>
> 'Éxécute la requête SQL
> objSQLConnexion.OpenRecordSet strRequete, rs
>
> 'Je met mon SELECT dans mon tableau
> Tarray() = rs.GetRows
>
> 'On ferme la connexion
> objSQLConnexion.CloseSQLConnection rs
>
>
> 'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
> For i = 0 To UBound(Tarray, 2)
>
> lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
>
> Next
>
> La requête SQL me retourne environ 5000 enregistrements. La boucle prend
> environ 15 secondes à s'exécuter avant que je vois l'information
apparaître
> dans ma liste.
>
> Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
> rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
> facilitrait la vie?
>
> Merci beaucoup!
>
> PS: À noter que ce code est utiliser dans une macro Excel, donc
> éviter les ActiveX.
>
>
>
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois l'information
en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
veux, je n'ai pas le choix de faire une boucle. La méthode la plus rapide
que j'ai trouvé est de mettre l'information dans un tableau et ensuite
remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets WHERE
[Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle prend
environ 15 secondes à s'exécuter avant que je vois l'information apparaître
dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup plus
rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc j'aimerais
éviter les ActiveX.
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois l'information
en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
veux, je n'ai pas le choix de faire une boucle. La méthode la plus rapide
que j'ai trouvé est de mettre l'information dans un tableau et ensuite
remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets WHERE
[Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle prend
environ 15 secondes à s'exécuter avant que je vois l'information apparaître
dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup plus
rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc j'aimerais
éviter les ActiveX.
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois l'information
en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
veux, je n'ai pas le choix de faire une boucle. La méthode la plus rapide
que j'ai trouvé est de mettre l'information dans un tableau et ensuite
remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets WHERE
[Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle prend
environ 15 secondes à s'exécuter avant que je vois l'information apparaître
dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup plus
rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc j'aimerais
éviter les ActiveX.
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois l'information
en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
veux, je n'ai pas le choix de faire une boucle. La méthode la plus rapide
que j'ai trouvé est de mettre l'information dans un tableau et ensuite
remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets WHERE
[Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle prend
environ 15 secondes à s'exécuter avant que je vois l'information
apparaître
dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup plus
rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc j'aimerais
éviter les ActiveX.
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois l'information
en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
veux, je n'ai pas le choix de faire une boucle. La méthode la plus rapide
que j'ai trouvé est de mettre l'information dans un tableau et ensuite
remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets WHERE
[Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle prend
environ 15 secondes à s'exécuter avant que je vois l'information
apparaître
dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup plus
rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc j'aimerais
éviter les ActiveX.
Bonjours à tous!
Je suis en train de remplir une listBox avec des données que je vais
chercher via SQL Server. La requête que j'exécute me renvois l'information
en moins 2 secondes.
Par contre, lorsque j'arrive pour remplir ma listBox avec tous ce que je
veux, je n'ai pas le choix de faire une boucle. La méthode la plus rapide
que j'ai trouvé est de mettre l'information dans un tableau et ensuite
remplir ma liste comme suit:
strRequete = "SELECT [No.], [Description] FROM ListeProjets WHERE
[Etat du projet] = 0 " & _
"ORDER BY [No.]"
'Ouvre la connexion SQl
objSQLConnexion.OpenSQLConnection
'Éxécute la requête SQL
objSQLConnexion.OpenRecordSet strRequete, rs
'Je met mon SELECT dans mon tableau
Tarray() = rs.GetRows
'On ferme la connexion
objSQLConnexion.CloseSQLConnection rs
'On remplit la liste des projets -----------ICI C'EST LONG EN TITI
For i = 0 To UBound(Tarray, 2)
lstProjet.AddItem Tarray(0, i) & " - " & Tarray(1, i)
Next
La requête SQL me retourne environ 5000 enregistrements. La boucle prend
environ 15 secondes à s'exécuter avant que je vois l'information
apparaître
dans ma liste.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup plus
rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Merci beaucoup!
PS: À noter que ce code est utiliser dans une macro Excel, donc j'aimerais
éviter les ActiveX.
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
facilitrait la vie?
Dominic Feron wrote:
> Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
> plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
> facilitrait la vie?
Bonjour,
Outre les différents conseils qui vous ont déjà été donnés, j'ajouterai
ceci:
1. Ce qui prend en fait le plus de temps, c'est certainement l'affichage
qui est recalculé à chaque ajout. Quand on charge une listbox (ou une
combobox ou autre chose) avec un grand nombre d'éléments, généralement,
on désactive le rafraîchissement de la fenêtre pendant le chargement et
on le réactive après. C'est une précaution élémentaire:
Dim lReturn As Long
lReturn = SendMessage(MaListbox.hWnd, WM_SETREDRAW, False, 0&)
...chargement...
lReturn = SendMessage(MaListbox.hWnd, WM_SETREDRAW, True, 0&)
Vous allez voir, ça ira beaucoup plus vite.
2. Si vos éléments sont déjà triés par l'exécution de la requête,
assurez vous que la propriété Sorted de la listbox est à False.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Dominic Feron wrote:
> Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
> plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
> facilitrait la vie?
Bonjour,
Outre les différents conseils qui vous ont déjà été donnés, j'ajouterai
ceci:
1. Ce qui prend en fait le plus de temps, c'est certainement l'affichage
qui est recalculé à chaque ajout. Quand on charge une listbox (ou une
combobox ou autre chose) avec un grand nombre d'éléments, généralement,
on désactive le rafraîchissement de la fenêtre pendant le chargement et
on le réactive après. C'est une précaution élémentaire:
Dim lReturn As Long
lReturn = SendMessage(MaListbox.hWnd, WM_SETREDRAW, False, 0&)
...chargement...
lReturn = SendMessage(MaListbox.hWnd, WM_SETREDRAW, True, 0&)
Vous allez voir, ça ira beaucoup plus vite.
2. Si vos éléments sont déjà triés par l'exécution de la requête,
assurez vous que la propriété Sorted de la listbox est à False.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Dominic Feron wrote:
> Y a-t-il un meilleur moyen de remplir une listBox, un moyen beaucoup
> plus rapide? Où y-a-til un autre objet que je pourrais utiliser qui me
> facilitrait la vie?
Bonjour,
Outre les différents conseils qui vous ont déjà été donnés, j'ajouterai
ceci:
1. Ce qui prend en fait le plus de temps, c'est certainement l'affichage
qui est recalculé à chaque ajout. Quand on charge une listbox (ou une
combobox ou autre chose) avec un grand nombre d'éléments, généralement,
on désactive le rafraîchissement de la fenêtre pendant le chargement et
on le réactive après. C'est une précaution élémentaire:
Dim lReturn As Long
lReturn = SendMessage(MaListbox.hWnd, WM_SETREDRAW, False, 0&)
...chargement...
lReturn = SendMessage(MaListbox.hWnd, WM_SETREDRAW, True, 0&)
Vous allez voir, ça ira beaucoup plus vite.
2. Si vos éléments sont déjà triés par l'exécution de la requête,
assurez vous que la propriété Sorted de la listbox est à False.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr