|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Michaël Développeur .NET Inscription : avril 2008 Messages : 80 ![]() |
Bonjour à tous,
j'ai un gros soucis, j'aimerais remplir une listbox avec le contenu d'un répertoire. j'ai donc un code du style: Code :
m_pathListBox.RowSource = "path1;path2;path3" Y'a t'il un moyen de dépasser ces 2048 caractères? |
|
|
00
|
|
|
#2 |
![]() ![]() Daniel Inscription : juillet 2006 Messages : 1 220 ![]() |
bonsoir,
oui utiliser un champ "mémo" |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Michaël Développeur .NET Inscription : avril 2008 Messages : 80 ![]() |
bonsoir,
moui, pour peu que je ne m'y connaisse pas c'est un peu short comme aide: "utiliser un champs mémo" On aime laisser planer le mystère à ce que vois ceci dit, mes données ne venant pas d'une table, je n'utilise pas de requête sql pour remplir ma listbox, mais bien une liste de valeur "Element1;Element2;Element3;" |
|
|
00
|
|
|
#4 |
![]() ![]() Daniel Inscription : juillet 2006 Messages : 1 220 ![]() |
Bonjour,
avec mes excuses, j'ai répondu un peu trop vite, l'utilisation de mémo ne correspond effectivement pas à ton problème, meme en passant par une table on ne peut lister de champ de type mémo dans une Zone de Liste. a priori l'utilisation d'une ZDL déroulante ou non est essentiellement réservée à une sélection rapide d'un élément la limite n'est normalement pas un problème sauf dans ton cas bien sur, tu dois trouver une solution de contournement. |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() ![]() Conseil + Formation Inscription : février 2010 Messages : 583 ![]() |
Bonjour
Peut-être ajouter les éléments à une table, elle-même source de la listbox... |
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Michaël Développeur .NET Inscription : avril 2008 Messages : 80 ![]() |
arf, j'avais déja lu cette solution mais c'est moche:
- créer une table qui n'a rien avoir avec les autres données de la bd, rien que pour remplir une listBox ... - insérer les champs dans la table pour ensuite l'interroger. Avec le problème que si un jour je créée plusieurs listbox susceptible de s'ouvrir en même temps chacune devra avoir sa table... et si un jour access fait une erreur fatale (ce qui arrive 3 fois par jour avec access 97) les tables risquent de ne pas être nettoyées. |
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Michaël Développeur .NET Inscription : avril 2008 Messages : 80 ![]() |
Bonjour bonjour,
J'ai trouvé la solution pour dépasser la limite des 2048 caractères de la listbox. Non seulement elle est facile à mettre en oeuvre mais en plus elle est performante et elle fonctionnerait toujours (ca reste à prouver). Il s'avère que la propriété ListBox.RowSourceType peut recevoir en paramètre une fonction Callback. La signature de la fonction est: Code :
Function ListFill(ctl As Control, id As Variant, currentRow As Long, currentColumn As Long, actionCode As Integer) As Variant ctl est le contrôle à mettre à jour (la listbox ou combobox)Voici ma fonction: Code :
voici l'assignation de la fonction callback: Code :
m_filesPathListBox.RowSourceType = "ListFill" |
||
|
|
00
|
|
|
#8 |
|
Membre émérite
![]() ![]() Conseil + Formation Inscription : février 2010 Messages : 583 ![]() |
Bonjour
Très intéressant : merci d'avoir partagé cette solution. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com