IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

obtenir l'element racine dans un Treeview Control [AC-2003]


Sujet :

IHM

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 788
    Points : 446
    Points
    446
    Par défaut obtenir l'element racine dans un Treeview Control
    Bonjour à tous,

    Je cherche depuis et comme je ne trouve pas, je me tourne vers vous

    J'ai un treeview control avec (après une recherche) une liste qui s'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ItemA
    --Sous Item1
    ---Sous Sous Item1
    --Sous Item2
    ---Sous Sous Item2
    ItemB
    --Sous item1
    ---Sous Sous Item1
    --Sous Item2
    Lorsque je sélectionne un nœud ou sous nœud d'un item donné (quel qu’il soit), j'aimerai récupéré la clé de l'item du nœud Sous Sous Item1 (qui est obligatoire)
    Mais je n'y arrive pas, je me mélange entre le Parent, le Root, les index etc ...

    Donc si vous pourriez m'aider
    Merci
    Le savoir est une arme alors soyons armés

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 265
    Points : 19 434
    Points
    19 434
    Billets dans le blog
    63
    Par défaut
    Salut,

    Ce n'est pas clair

    Pour obtenir l'élément parent d'un item sélectionné, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TreeView1_NodeClick(ByVal Node As Object)
     
    Dim nodeParent As Node
     
    Set nodeParent = Node.Parent
     
    MsgBox (nodeParent.Key)
     
    End Sub
    Pour obtenir le premier enfant de l'élément cliqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TreeView1_NodeClick(ByVal Node As Object)
     
    Dim NodeEnfant As Node
     
    Set NodeEnfant = Node.Child
     
    MsgBox (NodeEnfant.Key)
     
    End Sub
    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 788
    Points : 446
    Points
    446
    Par défaut
    Bonjour et merci de la réponse

    Pour faire simple j'aimerai obtenir l'index du nœud racine : dans mon exemple ItemA ou ItemsB en fonction du groupe d'item selectionné
    (Root ne me donne pas ce que je cherche puisque j'obtiens toujours 1)

    J'ai essayé de construire une fonction mais sans succès :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function ParentRoot(pIndex As Integer)
        Dim oIndex As Integer
        Debug.Print "pIndex :" & pIndex
        If Me.TreeViewArbo.Nodes.Item(pIndex).Parent Is Nothing Then 'si le noeud n'a pas de parent 
           oIndex = pIndex
        Else
            oIndex = Me.TreeViewArbo.Nodes.Item(pIndex).Parent.Index
            ParentRoot (oIndex)
        End If
    fin:
    End Function

    Et l'appel :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oIndex = Me.TreeViewArbo.SelectedItem.Index
    oIndex = ParentRoot(oIndex)
    Debug.Print oIndex

    mais cela me renvoi 0 systématiquement
    A priori, pourtant la fonction se déroule bien mais je ne maitrise pas pas les fonction peut être ai je oublié quelque chose (je pense à un return)
    Le savoir est une arme alors soyons armés

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 265
    Points : 19 434
    Points
    19 434
    Billets dans le blog
    63
    Par défaut
    Salut,

    J'ai réécris ta fonction :

    On remonte l'arbre jusqu'a la racine (parent is nothing) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function ParentRoot(NodeS As Object) As Object
    Dim NodeP As Object
     
    Set NodeP = NodeS
     
      Do Until NodeP.Parent Is Nothing
     
         Set NodeP = NodeP.Parent
     
      Loop
     
    Set ParentRoot = NodeP
     
    End Function
    Et son utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Node1 As Node
     
    Set Node1 = ParentRoot(TreeViewArbo.SelectedItem)
    Debug.Print Node1.Key
    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 788
    Points : 446
    Points
    446
    Par défaut
    Merci beaucoup
    Effectivement cela fonctionne
    Le savoir est une arme alors soyons armés

  6. #6
    Membre régulier
    Homme Profil pro
    Manager de projet (retraité)
    Inscrit en
    Juillet 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Manager de projet (retraité)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 150
    Points : 71
    Points
    71
    Par défaut
    N'aurait-il pas été plus simple d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Node1 As Node
     
    Set Node1 = TreeViewArbo.SelectedItem.Root
     
    Debug.Print Node1.Key
    On évite une boucle, mais cela est vrai en Access 2010, en 2003 je ne sais pas ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. obtenir l'element selectionnée dans un ListViewWebpart
    Par ITParty dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 31/05/2013, 18h05
  2. Réponses: 2
    Dernier message: 08/10/2010, 11h54
  3. Obtenir la racine dans une requête récursive
    Par vingte dans le forum SQL
    Réponses: 2
    Dernier message: 24/08/2009, 12h49
  4. Control server dans un treeview
    Par snopims dans le forum ASP.NET
    Réponses: 7
    Dernier message: 02/10/2007, 07h36
  5. Selection d'un element dans un treeview
    Par Seth77 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 11/08/2007, 23h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo