Treeview

alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 13 juin 2005 à 18:44
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 13 juin 2005 à 22:00
bonjour,

je cherche a remplir un controle treeview de maniere arborescente a l'aide des infos de la table "arbobo" de ma bdd access "arbo.mdb".
voici vous trouverez ci-dessous la structure de ma table "arbobo" :


code code_pere designation
AAA objet a
BBB AAA objet b
CCC AAA objet c
DDD BBB objet d
EEE BBB objet e
FFF CCC objet f
GGG DDD objet g
HHH EEE objet h
III AAA objet i


grace au champs "code_pere", on sait a quel objet rattacher chacun des items.


voici le code que j'ai concu (mais qui plante lamentablement) :
Private Sub Form_Load()
Dim cnx As New ADODB.Connection
cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\arbo.mdb;Jet OLEDB:Database Password=PWD;"
cnx.Open
Dim noeud As Node
TreeView1.Nodes.Clear
Dim rst As New ADODB.Recordset
rst.Open "SELECT * FROM arbobo WHERE code_pere Is Null;", cnx
Set noeud = TreeView1.Nodes.Add(, , rst(0), rst(0))
rst.Close
rst.Open "SELECT * FROM arbobo WHERE code_pere Is Not Null;", cnx
rst.MoveFirst
Do While rst.EOF = False
'c'est ici que ca plante
Set noeud = TreeView1.Nodes.Add(rst(1), tvwChild, rst(0), rst(0))
rst.MoveNext
Loop
Set noeud = Nothing
rst.Close
cnx.Close
End Sub


sauriez m'aider a solutionner mon pbl ?


d'autre part, je n'ai pas trouve grand chose sur le web au sujet des treeview, auriez-vous connaissance d'un tutoriel bien fait ?

merci a vous,

alonsyl

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 juin 2005 à 19:12
Salut
"plante", "marche pas" ... ça veut rien dire !
Quel est le code d'erreur ?

A mon avis
La 2ere fois, tu crées ta base (roor) en utilisant Add(, , rst(0), rst(0))
Ensuite, quand tu insères de nouveau noeuds en dessous du 1er, tu utilises Add(rst(1), tvwChild, ...
Le 1er paramètre étant le parent relationnel, à mon avis rst(1) n'existe pas, ce devrait-être rst(0)

Pour ce qui est de l'aide, celle de VB6 à propos des TreeView est assez claire.
Cherche aussi parmi les sources de vbfrance qui utilisent un TreeView et tu comprendras.

Pour être complet, ton raccourci rst(0) devrait en réalité être rst.Fileds(0).Value

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
13 juin 2005 à 19:43
erreur 35610 : 'objet non valide'

qu'indiquent les 4 parametres entre les parentheses de :
TreeView1.Nodes.Add(param1, param2, param3, param4) ?

merci a toi,

alonsyl
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
13 juin 2005 à 22:00
je sais pas pourquoi mais ca fonctionne :
Do While rst.EOF = False
code_pere = rst("code_pere")
TreeView1.Nodes.Add code_pere , tvwChild, rst("code"), rst("designation")
rst.MoveNext
Loop

alors que ca ne fonctionnait pas :
Do While rst.EOF = False
TreeView1.Nodes.Add rst("code_pere"), tvwChild, rst("code"), rst("designation")
rst.MoveNext
Loop

saurais-tu pourquoi ?

merci a toi,

alonsyl
0
Rejoignez-nous