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

Access Discussion :

Treeview


Sujet :

Access

  1. #1
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut Treeview
    Salut ,

    Voilà, j'ai récupéré un exemple de treeview sur le Web, et je l'ai modifié, mais cela ne fonctionne pas ????

    Alors peut-être que quelqu'un connait la solution ?
    Mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Private Sub Form_Load()
     
    Dim ctl As TreeView, clients As DAO.Recordset, db As DAO.Database
    Dim prbar As ProgressBar
    Dim res As DAO.Recordset, remise As DAO.Recordset
    Dim k As Integer, i As Integer, j As Integer
     
    Set db = CurrentDb
    Set prbar = Me!prog.Object
     
    prbar.Min = 0
    Set perimetre1 = db.OpenRecordset("select count(*) as n from supra_table_perimetre")
    If perimetre1!N <> 0 Then prbar.Max = perimetre1!N
    perimetre1.Close
     
    Set ctl = Me!tree.Object
     
    Set perimetre1 = db.OpenRecordset("select  id_perimetre, lib_perimetre from supra_table_perimetre")
    i = 1
    j = 1
    k = 1
     
    While Not perimetre1.EOF
     
        ctl.Nodes.Add , , perimetre1!id_perimetre & " : " & perimetre1!lib_perimetre
     
        Set perimetre2 = db.OpenRecordset("SELECT supra_table_perimetre_1.id_perimetre, supra_table_perimetre_1.lib_perimetre " _
        & "FROM supra_table_perimetre INNER JOIN supra_table_perimetre AS supra_table_perimetre_1 ON supra_table_perimetre.id_perimetre = supra_table_perimetre_1.id_division " _
        & "WHERE (((supra_table_perimetre_1.id_perimetre)<>[supra_table_perimetre]![id_perimetre]) AND ((supra_table_perimetre_1.niveau)>99));")
     
        While Not perimetre2.EOF
         ctl.Nodes.Add perimetre2!id_perimetre & " : " & perimetre2!lib_perimetre
         perimetre2.MoveNext
         k = k + 1
        Wend
        perimetre2.Close
        If prbar.Value < prbar.Max Then prbar.Value = i
        i = i + 1
        perimetre1.MoveNext
    Wend
     
    prbar.Value = 0
    perimetre1.Close
    db.Close
    Arbo.Enabled = True
    Arbo.SetFocus
    Afficher.Enabled = False
     
    End Sub
    Cela bloque à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctl.Nodes.Add perimetre2!id_perimetre & " : " & perimetre2!lib_perimetre
    D'avance merci pour vos réponses.

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    C'est quoi le message ? :

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Le message s'est élément introuvable !
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Il ne trouve pas l'element pere ..
    Tu dois mettre en reference l'element pere auquel tu veux ajouter les elements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    i = 1
    Set x = ocxTree.Nodes.Add(, , "M", "Menu Principal")
    Do
        Set x = ocxTree.Nodes.Add("M", tvwChild, "cle Fils " & CStr(i), "Libelle Fils " & CStr(i))
        i = i + 1
        If i > 10 Then Exit Do
    Loop

  5. #5
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Je ne comprends pas, il n'arrive pas à trouver quel élément père ???

    Que dois-je faire avec le code que tu m'as envoyé ?

    Merci.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    C'est un exemple, pour te montrer comment tu dois faire reference au pere pour inserer un noeud. le message d'erreur indique qu'il ne trouve pas la cle du noeud pere.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set x = ocxTree.Nodes.Add(, , "M", "Menu Principal")
    cree la racine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set x = ocxTree.Nodes.Add("M", tvwChild, "cle Fils " & CStr(i), "Libelle Fils " & CStr(i))
    Cree tous les noeuds fils de la racine.
    "M" --> indique de creer un fils de "Menu Principal", tu dois y mettre la cle du pere.
    tvwChild --> dit que c'est un fils
    "cle Fils " & CStr(i) --> est la cle de ce fils.
    "Libelle Fils " & CStr(i) --> est le libelle du fils.

    Toute les cles doivent etre unique.

  7. #7
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Ok, cela fonctionne correctement pour le fils.

    Mais j'ai un autre problème en ce qui concerne le père, car le texte que je voudrai voir apparaître n'est pas visible ???

    As-tu l'explication :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    While Not perimetre1.EOF
        ctl.Nodes.Add , , perimetre1!id_perimetre & " : " & perimetre1!lib_perimetre
        Set perimetre2 = db.OpenRecordset("SELECT supra_table_perimetre_1.id_perimetre, supra_table_perimetre_1.lib_perimetre " _
        & "FROM supra_table_perimetre INNER JOIN supra_table_perimetre AS supra_table_perimetre_1 ON supra_table_perimetre.id_perimetre = supra_table_perimetre_1.id_division " _
        & "WHERE (((supra_table_perimetre_1.id_perimetre)<>[supra_table_perimetre]![id_perimetre]) AND ((supra_table_perimetre_1.niveau)>299)) ")
        While Not perimetre2.EOF
         ctl.Nodes.Add i, tvwChild, "lrem" & k, perimetre2!id_perimetre & " : " & perimetre2!lib_perimetre
         perimetre2.MoveNext
         k = k + 1
        Wend
        perimetre2.Close
        If prbar.Value < prbar.Max Then prbar.Value = i
        i = i + 1
        perimetre1.MoveNext
    Wend
    Le problème est que je ne sais pas comment faire apparaître le texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctl.Nodes.Add , , perimetre1!id_perimetre & " : " & perimetre1!lib_perimetre
    Mais si je bouge cela ne fonctionne plus !!!

    Merci.[/code]
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Je pense qu'il te faut un noeud racine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set x = ctl.Nodes.Add(, , "R", "Racine")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ctl.Nodes.Add "R",tvwChild , perimetre1!id_perimetre & " : " & perimetre1!lib_perimetre

  9. #9
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    C'est bon j'ai réussi.
    Je te remercie.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

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

Discussions similaires

  1. TreeView et menu contextuel...
    Par agh dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/04/2009, 12h23
  2. TreeView -> ajouter un child à un noeud donné
    Par fake dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/03/2003, 17h14
  3. Réponses: 5
    Dernier message: 09/01/2003, 11h55
  4. où y a t il un tutorial pour le Treeview ??
    Par silvermoon dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/12/2002, 13h30
  5. [Pointer]Treeview.Data
    Par rbag dans le forum Composants VCL
    Réponses: 7
    Dernier message: 31/08/2002, 01h44

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