cs_Janeo
Messages postés50Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention12 novembre 2011
-
14 mai 2006 à 16:36
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
20 mai 2006 à 01:42
Bonjour à tous
Quelqu'un pourrait-il me dire comment faire ?
En VB6++, j'ai une ListBox dans laquelle je fais venir la colonne d'une table fabriquée sous Access2000. Tout ce passe comme prévu, et tout marche quand je clique sur un enregistrement ...
Mais je n'arrive pas à intégrer certains de ces enregistrements avec un décallage au début, par exemple un espace de 3 lettres puis seulement après le mot en question. Cela doit ressembler à ce qui suit :
prune
prunier
fraise
fraise des bois
fraise sauvage
éléphant
éléphant d'Afrique
lapin
oiseau
musaraigne
etc ...
donc, uniquement que pour certains enregistrements que j'aurai marqué d'un signe dans une des colonnes de ma base Access.
J'ai essayé plusieurs choses mais sans succès, y compris mettre des blancs avant les mots en question dans ma base, mais quand je la charge avec mon programme VB, il trouve des blancs, et mes donc tous ces enregistrements au tout début de ma liste dans ma ListBox, ce que je ne veux pas.
Dans le même genre, est-il possible de changer dans ma ListBox, la couleur de ma Police et là aussi uniquement pour certains enregistrements repérés au préalable dans ma BdD évidemment.
Merci encore pour une réponse claire et rapide si possible.
Bonne programmation à toutes et à tous,
A+
Janeo
ça faisait longtemps 134976 Janeo.
=647037 mortalino, en fait, apparemment, ce que veut dire Janeo, c'est que la ListBox trie les éléments ajoutés, et que, du coup, ceux qui commencent par des espaces se retrouvent en haut de la liste.
En fait, c'est un problème de tri.
De plus, vraissemblablement, ce n'est pas la ListBox qui a un problème de tri, mais la requête exécutée.
Une solution simple (parmi tant d'autres) consiste à ajouter une colonne dans ta table de base de données (colonne que tu peux nommer ID). Tu donnes à cette colonne le type NumeroAuto. Access se chargera de numéroter automatiquement chaque nouvel enregistrement.
Mais ceci ne résoud pas encore le problème de ceux qui sont déjà dans la table.
Donc, avant d'ajouter la colonne, il faut récupérer tes enregistrements existants (avec une table temporaire, par exemple), les enlever de la table à modifier, modifier la table, remettre les enregistrements de la table temporaire vers la table modifiée, et supprimer la table temporaire (si tout a bien marché, vérifies avant de supprimer).
Enfin, pour que cette manipulation (ce n'est pas encore le cas), il faut, dans la requête qui te sert à remplir la ListBox, ajouter une clause ORDER BY sur le champ ID. Du coup, ta requête respectera l'ordre naturelet ne tiendra plus compte des espaces).
Ceci dit, la technique des espaces pour indenter n'est pas viable. Et j'en profite, ici, pour répondre à ta 2ème question : non, tu ne peux pas changer la police ou la couleur d'un élément de ta ListBox, individuellement.
Pourquoi j'en profite ici pour mélanger les 2 problèmes?
Parce qu'il faut utiliser un autre contrôle que le ListBox pour arriver à tes fins. Par exemple, le MSComctlLib.TreeView (composant Microsoft Windows Common Controls 6.0) ne se prête pas trop mal à ce genre d'utilisation, mais nécessite une prise en main différente du ListBox (plus pointue, mais plus efficace, beaucooup plus).
Ce composant n'est autre que l'arborescence que tu peut observer dans ton navigateur Windows. Et tu peux le configurer pour qu'il ne ressemble pas trop à une arborescence, mais plus à du texte indenté.
Si cela t'interesse, dis -le ici.
à+ vous 2
rvblog<sup>n
</sup> <sup>Merci d'avoir accepté la réponse :)
Je veux ton bien....et je l'aurais....mais jamais avant la page 4 des derniers échanges
</sup>
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 18 mai 2006 à 13:03
Et puis, juste pour te faire envie :
avec le TreeView dont je te parle (pardon pour le choix des couleurs, et la piètre qualité de la photo et la mise en scène:) )
à+
rvblog<sup>n
</sup> <sup>Merci d'avoir accepté la réponse :)
Je veux ton bien....et je l'aurais....mais jamais avant la page 4 des derniers échanges
</sup>
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Janeo
Messages postés50Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention12 novembre 2011 18 mai 2006 à 22:06
Salut rvblog
Bien heureux de te retrouver !
Merci pour ta réponse. J'avais pourtant cherché à qqchose du genre que tu m'indiques avec Access, mais je ne sais pas pourquoi, je n'y étais pas arrivé.
Enfin, j'ai bien compris !
Sûr que ça m'interesse le Treeview. Je n'avais pas essayé avec composant, vu que je ne sais pas comment l'utiliser, à chaque fois, je ne vois que l'arborescence du disque, donc ...
Mais, en voyant ce que tu arrives à faire avec, il est vrai que cela m'interesse. Donc, dès que tu auras 1 minute, merci de revenir sur le sujet.
Bonne soirée.
Xcuse le texte qui est un peu maladroit, mais je suis fatigué !
A+
Janeo
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 20 mai 2006 à 01:42
Bien le bonsoir à toi aussi.
Je reconnais que mon Post pouvait ressembler à une petite moquerie et pourtant, pas du tout. Je ne connaissais pas le TreeView et ça à l'air d'être l'idéal pour ce que Janéo à besoin.
Pour la mise en scène, c'est mieux ce que tu as fait que d'avoir une croix (car l'image ne s'affiche pas).