Clé unique et arbre à noeud [Résolu]

Atrius87 21 Messages postés samedi 27 janvier 2007Date d'inscription 18 avril 2007 Dernière intervention - 10 mars 2007 à 13:27 - Dernière réponse : Atrius87 21 Messages postés samedi 27 janvier 2007Date d'inscription 18 avril 2007 Dernière intervention
- 10 mars 2007 à 18:18
Bonjour à tous, je me permets de me tourner vers vous parce que là je bloque sur le chargement d'un arbre : je m'explique quand declare le code ci dessous dans une "private sub" et que je l'appel via un bouton (par exemple charger) tout ce passe bien! je me sers de la fonction call sur le bouton et ça marche!

Si par contre je met directement le code ci dessous sur le bouton (bouton_click) sans passer par la private sub et la fonction call, j'ai un message d'erreur me disant que "Erreur d'éxécution : la clé n'est pas unique dans la collection"
 quelqu'un peut t'il me dire a quoi correspond ce message car je comprend pas...je declare bien ma valeur noeud....

merci

le code en question :

Dim noeud

   ' Ajoute plusieurs objets Node.

   Set noeud = arbre_noeud.Nodes.Add(, , "r", "1")
   Set noeud = arbre_noeud.Nodes.Add("r", tvwChild, "K2", "2")
   Set noeud = arbre_noeud.Nodes.Add("r", tvwChild, "K3", "3")

   Set noeud = arbre_noeud.Nodes.Add("K2", tvwChild, "K4", "4")
   Set noeud = arbre_noeud.Nodes.Add("K2", tvwChild, "K5", "5")
   
   Set noeud = arbre_noeud.Nodes.Add("K4", tvwChild, "K6", "6")
   Set noeud = arbre_noeud.Nodes.Add("K4", tvwChild, "K7", "7")
   Set noeud = arbre_noeud.Nodes.Add("K5", tvwChild, "K8", "8")
   Set noeud = arbre_noeud.Nodes.Add("K5", tvwChild, "K9", "9")

   Set noeud = arbre_noeud.Nodes.Add("K3", tvwChild, "K10", "10")
   Set noeud = arbre_noeud.Nodes.Add("K3", tvwChild, "K11", "11")
   
   Set noeud = arbre_noeud.Nodes.Add("K10", tvwChild, "K12", "12")
   Set noeud = arbre_noeud.Nodes.Add("K10", tvwChild, "K13", "13")
   Set noeud = arbre_noeud.Nodes.Add("K11", tvwChild, "K14", "14")
   Set noeud = arbre_noeud.Nodes.Add("K11", tvwChild, "K15", "15")

End Sub
Afficher la suite 

Votre réponse

2 réponses

cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 10 mars 2007 à 17:29
+3
Utile
Salut
Il aurait fallu nous dire sur quelle ligne il génère le défaut.
Si c'est sur la 2ème ligne ("r", tvwChild, "K2", "2"), il y a de fortes chance que ce soit à cause de la déclaration de Noeud qu'il n'associe pas correctement à un Node mais à une Collection (puisque non précisé)
Complète ta déclaration de Noeud correctement :
Dim Noeud As Node
Si cela ne suffit pas, essaye d'insérer l'instruction suivante après chaque utilisation de ta variable :
Set Noeud = Nothing

On suppose aussi que ton bouton se trouve sur la même forme que ton TreeView, sinon, précise le nom de la forme avant le nom du TreeView.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Jack
Atrius87 21 Messages postés samedi 27 janvier 2007Date d'inscription 18 avril 2007 Dernière intervention - 10 mars 2007 à 18:18
0
Utile
c'est bon ça a marché en mettan le "As node" derrière "Dim noeud"
Commenter la réponse de Atrius87

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.