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

Contribuez Discussion :

Exemple de remplissage de treeview [Fait]


Sujet :

Contribuez

  1. #1
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut Exemple de remplissage de treeview
    Contexte : Application de gestion de personnel. Le directeur souhaite pouvoir consulter la hiérarchie directe entre ses employés :

    Exemple :

    Le dessinateur dépend du responsable du bureau d’étude qui lui-même dépend du responsable technique qui dépend du directeur général.

    Spécificité : Chaque employé est sous les ordres d’un seul et unique chef. Le TreeView ne permet pas de gérer les héritages multiples.

    Structure :

    Une seule table : tblEmploye(NumEmploye,NomEmploye,PrenomEmploye,RoleEmploye,ResponsableEmploye#)

    ResponsableEmploye correspond au numéro de l’employé qui le dirige. Il s’agit donc d’une clé étrangère.

    Jeu d’essai :

    tblEmploye
    NumEmploye NomEmploye PrenomEmploye RoleEmploye ResponsableEmploye
    1 MARTIN Paul Secrétaire Commerciale 3
    2 DUPONT Marthe Commerciale 3
    3 JEAN Lucie Responsable Commerciale 4
    4 ETIENNE Dominique Directeur Général 0
    5 RENNE Stephanie Responsable technique 4
    6 LUCY Marc ResponsableChauffage 5
    7 VIAUD Raymond Technicien Chauffage 6
    8 LOUIS Remy Technicien Chauffage 6
    9 TERNIER Sebastien Responsable Bureau Etude 5
    10 KOFFER Fabier Dessisnateur 9
    Principe : Parcourir la liste des employés pour remplir le treeview. Ce parcours est dit récursif :


    On commence à l’empoyé qui n’a pas de responsable, puis ceux sous ses ordres, etc.

    Dans un module :

    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
    Option Compare Database
    Option Explicit
     
     
     
    '********************************************************************************
    '     Procédure de remplissage de Treeview
    '
    '       @oT : Controle Treeview qui affichera les données
    '       @oDb : Objet database.
    '       @intEmploye : Numéro de l'emloyé responsable
    '
    '********************************************************************************
     
    Public Sub remplissageTreeView(oT As Object, odb As DAO.Database, Optional intEmploye As Integer = 0)
    Dim strSQL As String
    Dim oRst As DAO.Recordset
    Dim strLibelle As String
    strSQL = "SELECT NumEmploye,NomEmploye,PrenomEmploye,RoleEmploye FROM tblemploye WHERE Responsableemploye=" & intEmploye
    Set oRst = odb.OpenRecordset(strSQL)
    With oRst
        While Not .EOF
            'Récupère le nom, le prénom et le role
            strLibelle = .Fields(1).Value & " " & .Fields(2).Value & " (" & .Fields(3).Value & ")"
            'Test le cas de la racine
            If intEmploye = 0 Then
                oT.Nodes.Add Key:="Emp" & .Fields(0).Value, _
                     Text:=strLibelle
            Else
                oT.Nodes.Add "Emp" & intEmploye, tvwChild, "Emp" & .Fields(0).Value, strLibelle
            End If
            'Lance le même traitement avec ce responsable
            remplissageTreeView oT, odb, .Fields(0).Value
            'Passe à l'enregistrement suivant
            .MoveNext
        Wend
    End With
    'Ferme le recordset
    oRst.Close: Set oRst = Nothing
    End Sub

    Le code qui déclenchera cette procédure sera écrit dans l’événement Load du formulaire contenant le TreeView :

    Private Sub Form_Load()
    Dim odb As DAO.Database
    Set odb = CurrentDb
    remplissageTreeView tvwEmploye, odb
    End Sub
    Vous remarquerez que pour que ce code fonctionne vous devez ajouter la référence Microsoft Data Access Object Library à votre projet.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    'jour Tofalu, 'jour tout le monde,

    Merci pour cette source qui, je pense, pourra en aider plus d'un :-)

    Tu nous indque ne permet pas de gérer les héritages multiples, c'est fou ça il n'y a vraiement aucun moyen de le faire ?

    Car comment ferais-tu alors, dans le cas d'un employé ayant 2 responsables directs, pour visualiser l'ensemble des employés d'un responsable sachant qu'une personne peut apparaitre sous un voir plusieurs responsables ?
    Autre exemple : j'ai une société qui commercialise des caisses à outils et donc je souhaite recenser tous les modèles de caisses avec les outils standards (clés, pinces,...) vendus avec la caisse. Un même type d'outils peut donc apparaitre dans plusieurs caisses, comment faire ?

    Dans ces cas là on tombe à chaque fois en "Key is not unique in collection".

    C'est là que l'on va voir jusqu'où la folie d'access (dans le bon sens du terme ;-) peut nous emmener.

    Merci d'avance pour les réponses à ces questions ;-)
    @+

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Tu as mal compris.

    On ne peut pas représenter un fils déscendant de deux parents directement. Par contre on peut créer un fils décendant du pere et un fils (le même) descendant de la mère. Par contre, tu ne pourras pas avoir un arbre : un héritage multiple

    Pour cette histoire de clé, il suffit d'avoir une clé composite : Parent & Enfant

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Donc finalement, je peux avoir un arbre avec cette situation si je crée une clé composite ? ou alors je n'ai toujours rien compris lol !!!

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Ce ne sera pas un arbre, puisqu'un même noeud (géographiquement parlant) ne pourra pas déscendre de deux branches.

    Par contre une donnée sera illustrée par deux noeuds distincts descendant chacun d'une branche différente. Le plus simple pour montrer que l'on ne peux pas avoir d'arbre est d'en dessiner un sur une feuille. Tu t'apercevra alors que ça ne correspond pas à l'aspect graphique du treeview

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Effectivement, j'ai bien compris le principe.
    Donc l'idée serait de créer un 3ème champ dans la table, par exemple, qui contiendrait la concatenation des 2 autres champs ?

    Si je prends un exemple basique avec des valeurs numérique :
    -> un arbre (frmTreeview.JPG)
    ->basé sur cette table (tblTreeview.jpg)
    ->à l'aide de ce code (venant de developpez.com bien sur ;-))
    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
    Option Compare Database
    Option Explicit
     
    Public Sub RemplirTreeview(Tree As Object, Article_Fab As Long)
    Dim Sql As String
    Dim Rs As DAO.Recordset
    Dim Art_Fab As Long
     
       If Article_Fab = 0 Then ' premier niveau
       Sql = "SELECT DISTINCT tblTreeview1.ArticleFab FROM tblTreeview AS tblTreeview1 LEFT JOIN tblTreeview AS tblTreeview2 ON tblTreeview1.ArticleFab = tblTreeview2.ArticleComposant WHERE (((tblTreeview2.ArticleComposant) Is Null))"
       Set Rs = CurrentDb.OpenRecordset(Sql, dbOpenSnapshot)
     
       Do Until Rs.EOF
       Tree.Nodes.Add , , "f" & Rs!ArticleFab, Rs!ArticleFab
       Tree.Nodes("f" & Rs!ArticleFab).EnsureVisible
     
       RemplirTreeview Tree, Rs!ArticleFab
       Rs.MoveNext
       Loop
     
       Else
       Sql = "select * from tblTreeview where [ArticleFab]=" & Article_Fab & _
          " order by ArticleComposant;"
       Set Rs = CurrentDb.OpenRecordset(Sql, dbOpenSnapshot)
     
       Do Until Rs.EOF
       Tree.Nodes.Add "f" & Article_Fab, tvwChild, "f" & Rs!ArticleComposant, Rs!ArticleComposant
       Tree.Nodes("f" & Rs!ArticleComposant).EnsureVisible
     
       RemplirTreeview Tree, Rs!ArticleComposant
       Rs.MoveNext
       Loop
     
       End If
     
    Rs.Close: Set Rs = Nothing
     
    End Sub
     
    Private Sub Form_Open(Cancel As Integer)
    Dim Tw As Access.Control
    Set Tw = Me.twTreeView
    RemplirTreeview Tw.Object, 0
    End Sub
    En voulant ajouter un enregistrement 1/22, j'ai le pb de noeud, je crée donc un 3ème champ dans la table (tblTreeviewAfter.jpg) qui est la concaténation des 2 autres.
    Que dois-je changer dans le code, c'est là que j'ai du mal !!! Je me pencherais bien sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Tree.Nodes.Add "f" & Article_Fab, tvwChild, "f" & Rs!ArticleComposant, Rs!ArticleComposant
    mais je suis pas sur !

    Merci d'avance...

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 299
    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 299
    Points : 19 510
    Points
    19 510
    Billets dans le blog
    64
    Par défaut
    Resalut,

    une petite question:

    si tu ajoute l'enregistrement: 2 12, 12 étant le père de 121,122 on aura alors:

    les branches:

    1-12-121
    1-12-122

    mais aussi

    2-12-121
    2-12-122


    dans ce cas si tu prend (ArticleFab,ArticleComposant) comme clé tu aura 2 fois 12-121 et 2 fois 12-122 comme clé dans ton arbre et donc 1 message d'erreur !

    Dans ce cas il faut concaténer tous les noeuds depuis la racine pour avoir une clé unique.

    Peux-tu préciser ?

    @+
    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

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    La clé de 12 n'est pas 2 mais :

    1-12 et 2-12

    La clé composite de 121 n'est pas 12-121 mais 1-12-121 et 2-12-121.

    Mais bon aprés, on peut s'arranger comme on veut. Par exemple un id unique (génération incrémentale) suivie de la clé de l'enregistrement (et non du noeud)

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    -> User mon problème est bien là, il va falloir que je concatene pour éviter les message d'erreur mais je ne sais pas comment ensuite alimenter le treeview avec ces id unique...!

    -> Tofalu je pense avoir compris le principe mais derrière comment j'alimente le treeview ? :-)

    Merci

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 299
    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 299
    Points : 19 510
    Points
    19 510
    Billets dans le blog
    64
    Par défaut
    pour concatener dans ta sub tu peux essayer ca:

    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
    Public Sub Remplir_treeview(tree As Object, Optional Article_Fab As Long = 0, Optional Key As String = "")
    Dim sql As String
    Dim rs As DAO.recordset
     
       If Key = "" Then ' premier niveau
       sql = "select DISTINCT ArticleFab from tblTreeview where [ArticleFab] Not In (select ArticleComposant from  tblTreeview;)" & _
             " order by ArticleFab ;"
       Set rs = CurrentDb.OpenRecordset(sql, dbOpenSnapshot)
     
       Do Until rs.EOF
       tree.Nodes.Add , , "f" & rs!ArticleFab, rs!ArticleFab
       tree.Nodes("f" & rs!ArticleFab).EnsureVisible
     
       Remplir_treeview tree, rs!ArticleFab, rs!ArticleFab
       rs.MoveNext
       Loop
     
     
       Else
       sql = "select * from tblTreeview where [ArticleFab]=" & Article_Fab & _
          " order by ArticleComposant;"
       Set rs = CurrentDb.OpenRecordset(sql, dbOpenSnapshot)
     
       Do Until rs.EOF
       tree.Nodes.Add "f" & Key, tvwChild, "f" & Key & "-" & rs!ArticleComposant, rs!ArticleComposant
       tree.Nodes("f" & Key & "-" & rs!ArticleComposant).EnsureVisible
     
       Remplir_treeview tree, rs!ArticleComposant, Key & "-" & rs!ArticleComposant
       rs.MoveNext
       Loop
     
       End If
     
     
    rs.Close: Set rs = Nothing
     
    End Sub

    et sur open de ton form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Tw As Access.Control
    Set Tw = Me.TreeView1
    Remplir_treeview Tw.Object
    @+
    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

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Merci User...

    Vous trouverez en pj une image du treeview ;-).
    Cependant il me reste 3 tites questions :
    1) pourquoi le treeview est-il "dérouléé à l'ouverture, comment faire pour réduire toutes les branches ?
    2) je parcours 4000 lignes environ donc il met quelques 40/45sec à s'ouvrir, ne peut-on pas l'optimiser en terme de rapidité ? Je suis basé sur une table ?
    3) plutôt que d'avoir une série de chiffres, j'ai la correspondance avec des références textuel que j'ai inséré dans la table tblTreeview en [FabDescription] & [ComposantDescription]. Je suppose qu'il est préférable de garder les numérique pour construire le treeview, mais comment faire apparaitre ces données présentes dans ces 2 champs ald des valeurs numérique ?

    Merci encore énormément à tous pour votre aide...
    @+

    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
    Option Compare Database
    Option Explicit
     
    Public Sub FillTreeview(tree As Object, Article_Fab As Long, ArticleId As String)
    Dim sql As String
    Dim rs As DAO.Recordset
     
       If ArticleId = "" Then ' premier niveau
       sql = "select DISTINCT ArticleFab from tblTreeview where [ArticleFab] Not In (select ArticleComposant from  tblTreeview;)" & _
             " order by ArticleFab ;"
       Set rs = CurrentDb.OpenRecordset(sql, dbOpenSnapshot)
     
       Do Until rs.EOF
       tree.Nodes.Add , , "f" & rs!ArticleFab, rs!ArticleFab
       tree.Nodes("f" & rs!ArticleFab).EnsureVisible
     
        FillTreeview tree, rs!ArticleFab, rs!ArticleFab
       rs.MoveNext
       Loop
     
       Else
       sql = "select DISTINCT * from tblTreeview where [ArticleFab]=" & Article_Fab & _
          " order by ArticleComposant;"
       Set rs = CurrentDb.OpenRecordset(sql, dbOpenSnapshot)
     
       Do Until rs.EOF
       tree.Nodes.Add "f" & ArticleId, tvwChild, "f" & ArticleId & rs!ArticleComposant, rs!ArticleComposant
       tree.Nodes("f" & ArticleId & rs!ArticleComposant).EnsureVisible
     
       FillTreeview tree, rs!ArticleComposant, ArticleId & rs!ArticleComposant
       rs.MoveNext
       Loop
     
       End If
     
    rs.Close: Set rs = Nothing
     
    End Sub
     
     
    Private Sub Form_Open(Cancel As Integer)
    Dim Tw As Access.Control
    Set Tw = Me.twTreeView
    FillTreeview Tw.Object, 0, ""
    End Sub

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 299
    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 299
    Points : 19 510
    Points
    19 510
    Billets dans le blog
    64
    Par défaut
    Salut,

    pour le 1),

    il faut supprimer dans le code les commandes:

    tree.Nodes("f" & rs!ArticleFab).EnsureVisible

    et

    tree.Nodes("f" & ArticleId & rs!ArticleComposant).EnsureVisible

    2):Je verrai d'ici ce soir si je peux l'optimiser..
    (Essaie de comprendre le code, ca peut t'aider à y voir plus clair, il y a juste la recherche des racines dans la table qui est différent du code de Tofalu)

    3) Ca aussi pour le moment je n'ai pas le temps..mais j'y reviens..

    @+
    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

  13. #13
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Attention, ce forum est réservé aux contributions. Pas aux questions relatives à ton projet. Merci d'enrichir ton topic prinicpal pour toute question

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    -> User, merci pour ton aide, il est vrai que j'ai du mal avec ce code, mais je n'ai ni aide, ni assisstant et sous 97 sur le pc où je suis donc c'est bancale ;-)

    -> Tofalu j'avoue que là il aurait été préférable de revenir sur l'autre fil, j'ai complètement zappé c'est ma faute J'essai de faire un bilan de l'avancement sur l'autre fil et je le réactiverai ainsi.

    Merciiiiiiiiiii

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Problème de déclaration de variable
    Bonjour,
    Je suis récent sur ce site et nouveau dans la programmation VBA.
    Je travail avec ACCESS 2010.
    Lorsque je lance mon formulaire, après avoir ajouter toutes les lignes de code, un message me dit que les variables :
    tvwEmploye et tvwchild ne sont définies.
    Que dois-je faire pour les déclarer ?
    Merci de votre aide.

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2014
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Création d'un arbre avec treeview
    Bonjour, je suis très débutant avec cette commande et bien que j'ai consulté plusieurs discution sur dfférent forum, j'avoue ne pas comprendre comment utiliser cette commande dans ACCESS 2010.
    j'ai essayé d'utiliser des code pré-établis, mais il bug.
    J'ai essayé d'utiliser des base ACCESS avec les explications mais elles bug aussi.
    J'ai pourtant suivi tous les recommandations citées, comme déclaré des bibliothèque dasn les références de VBA, installé GDI+ etc.
    Rien n'y fait, rien ne fonctionne.
    Je dois créer dans un formulaire ACCESS un arbre qui présentera par exemple chapitre 1, dans lequel sera intégré un fils du style chapitre 1.1 etc.
    Quelqu'un peut-il m'indiquer commanr faire précisément et clairement, en détail avec des explications, c'est vraiment important.
    Exemple :
    déclarer l'arbre code vba
    déclarer les variables pour..... code vba
    Ajouter un noeud parent code vba
    Ajouter un noued enfant code vba
    etc.
    Avec tous mes remerciements.
    je comprend que cela dois souler certains d'entre vous, surtout les pros du VBA, mais cela parait compliqué pour un novice.

Discussions similaires

  1. Remplissage récursif d'un treeview.
    Par nek_kro_kvlt dans le forum Delphi
    Réponses: 4
    Dernier message: 07/12/2006, 08h38
  2. [c#]Remplissage d'un treeview
    Par denden dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/06/2006, 14h25
  3. [vb.net][treeview] Icone du type de fichier (exemple Word)
    Par arnolem dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/02/2006, 17h21
  4. [Treeview / Javascript] Cherche exemple code source
    Par shaun_the_sheep dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/01/2006, 10h41
  5. [Vb.net][treeview]Exemple de treeview
    Par Golzinne dans le forum Windows Forms
    Réponses: 5
    Dernier message: 22/12/2005, 20h31

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