Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de clé dans un controle treeview

3 réponses
Avatar
benoit.soulard
Au secours, je suis en train de m'arracher les cheveux sur un contr=F4le
treeview ! je m'explique :

J'ai cr=E9=E9 un treeview pour lister une s=E9rie de rapports stock=E9s
dans ma base. Ces rapports consignent des infos sur plusieurs
=E9levages. Plusieurs rapports peuvent traiter des memes =E9levages.

Les donn=E9es me permettant de peupler mon treeview proviennent de deux
tables :
une table rapport (Id_Rapport, Lib_Rapport...)
une table =E9levage (Id_Elevage, Lib_Elevage...)

Pour peupler mon treeview, je commence par r=E9aliser une boucle sur ma
premi=E8re table, et pour chaque enregistrement, je cr=E9e un noeuds (key
=3D "a" & Id_Rapport) et je regarde dans ma deuxi=E8me table les
enregistrements correspondant pour cr=E9er des noeuds fils (Key =3D "b" &
Id_Elevage).

Ca marchait bien jusqu'=E0 aujourd'hui o=F9 il me dit : "Erreur
d'ex=E9cution '35602': La cl=E9 n'est pas unique dans la collection" !
Cette erreur apparait lorsqu'il essaie de cr=E9er un noeud-fils

Je d=E9bute avec les treeviews et je ne comprends pas le probl=E8me,
sachant que certains =E9levages vont apparaitre dans plusieurs rapports
sans probl=E8me (=E0 priori meme cl=E9 pour chaque noeud) alors que pour
d'autre, ca ne marche pas...

Est-ce que quelqu'un peut m'expliquer le principe des cl=E9s dans un
treeview ???

Merci beaucoup d'avance,

Ben.

3 réponses

Avatar
BenKooh
Une info supplémentaire : je me rends compte que la soit disant clé
du treeview fait la différence entre les majuscules et les minuscules
! est-ce normal ?
Avatar
Mwa
Salut,

Pour utiliser un treeview il faut suivre quelques règles simples
1. Lister tous les noeuds d'information (Rapports, Elevages...)
2. Lister toutes les données qui vont être affichées dans le treeview
3. Utiliser un formatage unique de la clef pour chaque noeud :
Personnellement : j'utilise toujours ceci :
Menus : m & Valeur numerique identifiant le menu & - & NumAleaLong
Données : d & Valeur numerique identifiant le menu supérieur & - & NumAleaLong & - & Id de
l'enregistrement

En gros cela pourrait donner pour toi :
Rapports : m001 & - & NumAleaLong
Elevages : m002 & - & NumAleaLong
Liste des rapports : d001 & - & NumAleaLong & - & Id du rapport
Liste des élevages : d002 & - & NumAleaLong & - & Id de l'élevage


Mwa

Au secours, je suis en train de m'arracher les cheveux sur un contrôle
treeview ! je m'explique :

J'ai créé un treeview pour lister une série de rapports stockés
dans ma base. Ces rapports consignent des infos sur plusieurs
élevages. Plusieurs rapports peuvent traiter des memes élevages.

Les données me permettant de peupler mon treeview proviennent de deux
tables :
une table rapport (Id_Rapport, Lib_Rapport...)
une table élevage (Id_Elevage, Lib_Elevage...)

Pour peupler mon treeview, je commence par réaliser une boucle sur ma
première table, et pour chaque enregistrement, je crée un noeuds (key
= "a" & Id_Rapport) et je regarde dans ma deuxième table les
enregistrements correspondant pour créer des noeuds fils (Key = "b" &
Id_Elevage).

Ca marchait bien jusqu'à aujourd'hui où il me dit : "Erreur
d'exécution '35602': La clé n'est pas unique dans la collection" !
Cette erreur apparait lorsqu'il essaie de créer un noeud-fils

Je débute avec les treeviews et je ne comprends pas le problème,
sachant que certains élevages vont apparaitre dans plusieurs rapports
sans problème (à priori meme clé pour chaque noeud) alors que pour
d'autre, ca ne marche pas...

Est-ce que quelqu'un peut m'expliquer le principe des clés dans un
treeview ???

Merci beaucoup d'avance,

Ben.


Avatar
BenKooh
Merci Mwa,

J'avais pas compris que chaque noeud devait avoir une clé unique... je
pensais qu'elle tenait compte du "niveau" du noeud (père ou fils) !

Je vais mettre en application tes conseils..

Ben.