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 :

Pb remplissage Treeview


Sujet :

Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Pb remplissage Treeview
    Bonjour,

    j'ai un probléme avec un controle treeview que je rempli en VBA.
    J'ai une base de donnée avec 2 tables et un formulaire.
    - tbl_Zone
    - tbl_TCS
    - Formulaire1

    Le probléme est que j'ai 4 péres et 40 fils par péres. lors de l'ouverture du formulaire, il n'ajoute les fils que pour le premier pére, en plus tous est dans le dessordre.

    Quelqu'un peut m'aider.

    Je joint ma base de donnée et le code que j'utilise

    Merci pour votre aide


    Voila le code:

    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
    50
    51
    52
    Option Compare Database
     
    Public Sub loadTreeview()
     
     
    Dim tv As MSComctlLib.TreeView
    Dim strSQL As String
    Dim db As DAO.Database
     
    Set db = CurrentDb
    Set tv = Forms("Formulaire1").tvwtcs.Object
     
    ' clear any nodes, if any
    tv.Nodes.Clear
     
        Dim rsZone As DAO.Recordset
        Set rsZone = CurrentDb.OpenRecordset("SELECT * FROM tbl_Zone ORDER BY ID_Zone", dbOpenDynaset)
        rsZone.MoveFirst
        Dim rsTCS As DAO.Recordset
        Set rsTCS = CurrentDb.OpenRecordset("SELECT * FROM tbl_TCS ORDER BY ID_Zone", dbOpenDynaset)
        rsTCS.MoveFirst
     
    Dim nodX As MSComctlLib.Node
     
    While Not (rsZone.EOF)
        Set nodX = tv.Nodes.Add(, , "A" & rsZone!ID_Zone, rsZone!Zone)
            nodX.Bold = True
        strSQL = "ID_Zone = " & rsZone!ID_Zone
        MsgBox rsZone!ID_Zone
        While Not (rsTCS.NoMatch)
            Set nodX = tv.Nodes.Add("A" & rsZone!ID_Zone, tvwChild, "C" & rsTCS!ID_TCS, rsTCS!IP)
                Select Case rsTCS!ID_Type
     
                Case 1 'Header
                    nodX.Bold = True
                Case 2
                    nodX.ForeColor = vbBlue
     
                End Select
     
                rsTCS.FindNext strSQL
     
       ' .. and loop back and add next child
        Wend
     
     
        rsZone.MoveNext
    Wend
     
    'End With
     
    End Sub

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour a tous,

    personne ne peut m'aider.
    Je ne connais pas trés bien ce control et je ne vois pas ce qui cloche.

    un peu d'aide, SVP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    j'ai trouvé une partie du probléme. J'arrive a afficher les fils pour chaque pére, mais je n'arrive toujours pas a les affichés trié.

    Voici le code corrigé ( en rouge ), si ca peu aider certain.

    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
    50
    51
    52
    53
    Public Sub loadTreeview()
    
    
    Dim tv As MSComctlLib.TreeView
    Dim strSQL As String
    Dim db As DAO.Database
    
    Set db = CurrentDb
    Set tv = Forms("Formulaire1").tvwtcs.Object
    
    ' clear any nodes, if any
    tv.Nodes.Clear
          
        Dim rsZone As DAO.Recordset
        Set rsZone = CurrentDb.OpenRecordset("SELECT * FROM tbl_Zone ORDER BY ID_Zone", dbOpenDynaset)
        rsZone.MoveFirst
        Dim rsTCS As DAO.Recordset
        Set rsTCS = CurrentDb.OpenRecordset("SELECT * FROM tbl_TCS ORDER BY ID_Zone", dbOpenDynaset)
        rsTCS.MoveFirst
       
    Dim nodX As MSComctlLib.Node
       
    While Not (rsZone.EOF)
        Set nodX = tv.Nodes.Add(, , "A" & rsZone!ID_Zone, rsZone!Zone)
            nodX.Bold = True
        strSQL = "ID_Zone = " & rsZone!ID_Zone
        MsgBox rsZone!ID_Zone
        
        rsTCS.FindFirst strSQL    
    
        While Not (rsTCS.NoMatch)
            Set nodX = tv.Nodes.Add("A" & rsZone!ID_Zone, tvwChild, "C" & rsTCS!ID_TCS, rsTCS!IP)
                Select Case rsTCS!ID_Type
          
                Case 1 'Header
                    nodX.Bold = True
                Case 2
                    nodX.ForeColor = vbBlue
          
                End Select
        
                rsTCS.FindNext strSQL
          
       ' .. and loop back and add next child
        Wend
          
      
        rsZone.MoveNext
    Wend
      
    'End With
       
    End Sub

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    J'ai modifié ton application.
    Ce n'est pas terrible mais j'espère que cela te donnera une base de travail pour la suite.
    Je te laisse essayer de comprendre pourquoi cela ne fonctionnait pas.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Remplissage Treeview via BDD SQL
    Par chouchouilloux dans le forum VB.NET
    Réponses: 4
    Dernier message: 05/03/2013, 20h56
  2. Remplissage TreeView dynamique
    Par abyssetique dans le forum Windows Forms
    Réponses: 5
    Dernier message: 10/10/2010, 18h23
  3. [AC-2007] Remplissage treeview par une table unique
    Par diombo dans le forum VBA Access
    Réponses: 0
    Dernier message: 14/02/2010, 12h08
  4. remplissage treeview dynamique
    Par bingo00 dans le forum C#
    Réponses: 4
    Dernier message: 20/05/2007, 23h13
  5. 'erreur 35601' lors du remplissage treeview
    Par GAGNON dans le forum Access
    Réponses: 18
    Dernier message: 30/11/2006, 19h51

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