alonsyl
Messages postés348Date d'inscriptionmardi 6 avril 2004StatutMembreDernière intervention 6 novembre 2008
-
13 juin 2005 à 18:44
alonsyl
Messages postés348Date d'inscriptionmardi 6 avril 2004StatutMembreDerniè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 ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
alonsyl
Messages postés348Date d'inscriptionmardi 6 avril 2004StatutMembreDernière intervention 6 novembre 200812 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