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 :

Treeview en VBA [À faire]


Sujet :

IHM

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Treeview en VBA
    Doté d'un QI assez faible mais gentil garçon,
    j'ai recherché sur le forum toutes les références aux treeviews:
    et là je tombe sur un super exemple de Zemenace répondant à Soph' en 2002

    Oui mais voilà, j'ai beau rajouter un "formulaire1" dans comptoirs.mdb sous access 2000 et rajouter un bouton OK nommé "Commande0" sur l'évènement clic duquel j'ai mis le code Zemenacien , un treeview nommé ocxTree et rien ne se passe ou plutôt message d'erreur: "attribut incorrect dans une proc..."

    Ce serait super Zemenace, si tu pouvais faire un exemple comme la recherche multi-critère de Cafeine, J'abuse?!?

    Pat

  2. #2
    mat.M
    Invité(e)
    Par défaut
    Bonjour,
    si tu as un message d'erreur , il faut diagnostiquer d'où vient l'erreur avec un déboguage pas-à-pas.
    une propriété du contrôle Tree View ne doit pas être valide

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour Mat.M,
    Il ne s'agit probablement pas d'une des propriétés du treeview,
    car çà plante (en access2000) dès le début dès la déclaration de WithEvents qu'il ne supporte pas, c'est dommage, le script me plaisait bien, mais soit c'est du VB pur, soit c'est compatible Access 2002 et pas 2000.



    Ci-dessous le script de ZeMenace que j'ai essayé d'incorporer dans Comptoir.mdb


    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
    Private Sub Commande0_Click()
    Dim WithEvents rsCli As ADODB.Recordset
    Dim WithEvents rsEmp As ADODB.Recordset
    Dim WithEvents rsCde As ADODB.Recordset
     
    Dim sup As String
     
    'Private Sub cmdUpdate_Click()
            'déclaration des variables
            Dim x As Node
            'Réaffectation des recordsets pour mise à jour
            sup = MsgBox("des recordsets", vbCritical + vbYesNo + 256, "Réaffectation")
     
            If rsCli.State = adStateClosed Then rsCli.Open "Clients", CurrentProject.Connection, adOpenStatic
            If rsEmp.State = adStateClosed Then rsEmp.Open "Employés", CurrentProject.Connection, adOpenStatic
            rsCli.Requery: rsCli.MoveFirst
            rsEmp.Requery: rsEmp.MoveFirst
            'Définition du treeview
     
            ocxTree.Nodes.Clear
            '--Clients
            Set x = ocxTree.Nodes.Add(, , "c", "Clients", 1)
            x.ExpandedImage = 2
            Do Until rsCli.EOF
                Set x = ocxTree.Nodes.Add("c", tvwChild, "C-" & rsCli(0), rsCli(1) & " (" & rsCli(2) & ")", 1)
                rsCli.MoveNext
            Loop
            '--Employés
            Set x = ocxTree.Nodes.Add(, , "e", "Employés", 1)
            x.ExpandedImage = 2
            Do Until rsEmp.EOF
                Set x = ocxTree.Nodes.Add("e", tvwChild, "E-" & rsEmp(0), rsEmp(1) & " " & rsEmp(2), 1)
                rsEmp.MoveNext
            Loop
    End Sub

  4. #4
    Membre actif
    Avatar de MashiMaro
    Profil pro
    Inscrit en
    Février 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 180
    Points : 213
    Points
    213
    Par défaut
    Pourrait-on voir la totalité du message d'erreur stp ?

    As-tu déclaré dans la liste les référence la bibliothèque contenant ADODB ?

    NB : pourrais-tu aussi éditer ton message pour mettre les balises [code]

  5. #5
    Candidat au Club
    Inscrit en
    Décembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Voici le message d'horreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    L'expression Sur clic entrée comme paramètre de la propriété de type événement est 
    à l'origine d'une erreur. Attribut incorrect dans une procédure Sub ou Function.
    *Le résultat de l'expression n'est pas le nom d'un macro, le nom d'une fonction 
    définie par l'utilisateur ou [Event Procedure].
    *Une erreur a peut être été commise lors de l'évaluation d'une fonction; d'un évènement ou d'une 
    macro.
    J'ai cliqué dans Outils/références dans tout ce qui ressemble à ADO ou Activex Data Object. en prenant soin de le placer plus haut que les ref à DAO

    Pat

  6. #6
    Futur Membre du Club

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3
    Points : 9
    Points
    9
    Par défaut
    je ne sais pas ce que tu veux faire exactement, mais tu peux peut-être travailler avec les API.

    il y a des infos sur les liens suivants :

    http://www.mvps.org/access/api/api0001.htm

    http://www.mvps.org/access/api/api0002.htm

  7. #7
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Il te manque la référence à "Microsoft ActiveX Data Objects *.* Library"

  8. #8
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Autant pour moi, c'est pas ça...
    Désolé!

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    En fait les déclarations avec les withevents doivent être faites en dehors de la procedure.

  10. #10
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    essaye ça:


    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
    Dim x As Node, xchild As Node, conn As ADODB.Connection, ocx As TreeView
            Dim sup As Integer
            Set ocx = Me!ocxTree.Object
            sup = MsgBox("des recordsets", vbCritical + vbYesNo + 256, "Réaffectation")
     
            If (sup <> vbYes) Then
              Exit Sub
            End If
            Set conn = CurrentProject.Connection
            Set rsCli = conn.Execute("select * from Clients")
            Set rsEmp = conn.Execute("select * from employés")
            ocxTree.Nodes.Clear
                    '--Clients
            Set x = ocx.Nodes.Add(, , "c", "Clients")
     
            Do Until rsCli.EOF
     
                Set xchild = ocx.Nodes.Add("c", tvwChild, "C-" & rsCli(0), rsCli(1) & " (" & rsCli(2) & ")")
                rsCli.MoveNext
            Loop
     
            '--Employés
            Set x = ocx.Nodes.Add(, , "e", "Employés")
     
            Do Until rsEmp.EOF
                Set xchild = ocx.Nodes.Add("e", tvwChild, "E-" & rsEmp(0), rsEmp(1) & " " & rsEmp(2))
                rsEmp.MoveNext
            Loop
    Tu vires ta procédure et tu fais un copier/coller de la mienne

  11. #11
    Candidat au Club
    Inscrit en
    Décembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Il doit falloir cocher quelque chose dans tools/ref ? car sur:
    j'ai un message du compilateur :
    "type defini par l'utilisateur non défini"
    Pat

  12. #12
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    non il faut être bien certain que tu as mis un

    Microsoft Treeview Control


    dans ton formulaire et appelle le "ocxTree". A la limite, recommence le tout dans un nouveau formulaire. J'ai testé le code et chez moi ça marche.

  13. #13
    Candidat au Club
    Inscrit en
    Décembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci Stephane,
    maintenant ça marche!
    merci à tous d'ailleurs
    et vive ce forum.

    PS: j'ai oublié comment on active le TAG résolu
    j'espère qu'on peut encore le positionner quand on a
    envoyé le message, sinon pardon au modérateur...

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 3
    Points : 4
    Points
    4
    Par défaut imbrication de node dans un treeview
    /* transferer dans un nouveau post */

    salut, je viens d'eesayer votre code pour un treeview et ca marche nickel seulement....
    moi j'ai une base de renseignement sur ma mediatheque, donc j'ai des artiste (1er niveau) auquels appartiennent des album (2eme niveau) et en suivant votre code, artiste et album sont deux nodes differents , alros que moi je souhaiterai n'avoir que artiste, que je devleoppe, qui m'affiche l'ensemble de mes artistes et que si je developpe un artiste j'y retrouve ses albums (donc un niveau d'indentation) bref je galere... si vous pouviez m'aider !!

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

Discussions similaires

  1. Fonction treeview en VBA
    Par p51 mustang dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/12/2010, 10h39
  2. Navigation dans treeview en VBA
    Par guen dans le forum IHM
    Réponses: 6
    Dernier message: 06/05/2009, 21h52
  3. Utilisation du TreeView en VBA avec Word standard
    Par ckeromen dans le forum VBA Word
    Réponses: 3
    Dernier message: 15/09/2006, 12h17
  4. [VBA] Réagir aux clics dans mon TreeView
    Par Neilos dans le forum IHM
    Réponses: 2
    Dernier message: 16/06/2005, 09h03
  5. [Treeview VBA] Liste des fils à partir d'un noeud donné
    Par NoCoZ dans le forum Général VBA
    Réponses: 3
    Dernier message: 26/04/2005, 09h15

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