Alimenter un treeview avec une base de donnée

Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 21 oct. 2008 à 20:57
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 22 oct. 2008 à 18:09
Bonjour à tous,
Je voudrais savoir s'il est possible d'alimenter un treeview avec une base de donnée (SQL server) ???
Si oui comment faire ?
Je travaille toujours sur une visionneuse d'infos relatives à des pièces mécaniques. Dans la base de donnée, chaque pcs a un numéro unique (1,2,3... pour simplifier) et un second numéro de classe (a,b,c...).
Ces lettres servent à les classer en catégories, on a donc les composants suivants :

pièce 1;a   ,   2;a   ,   155;c   ,   5;b ...

J'aimerais que toutes les pièces apparaissent dans un treeview et que chaque catégorie soit sous un nœud parent (le nœud a, le b, le c...)
Possible ?
Merci d'avance.

9 réponses

Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
21 oct. 2008 à 23:09
Désolé, je me suis planté de section, est-ce qu'un admin pourrait transférer mon message dans " Thèmes

/ [forum-VB-NET-VB-2005_40.aspx VB.NET et VB 2005] / [theme-DIVERS_221.aspx Divers] / [theme-DEBUTANTS_227.aspx Débutants] " ???
Merci d'avance.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 oct. 2008 à 23:17
c'est déplacé
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
22 oct. 2008 à 08:08
Bonjour,

Oui c'est possible!
regarde déjà cette source :
http://www.vbfrance.com/codes/DBTREEVIEW-CONTROLE-TREEVIEW-AVEC-LIAISON-DONNEES_26174.aspx
Ensuite, si cela ne correspond pas, tu as aussi l'option d'extraire tes données dans un recordset et ensuite charger ton treeview en fonction de ton recordset que tu auras pris soit d'organiser comme tu as besoin.
Bon courage.

S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
22 oct. 2008 à 08:30
Merci PCPT pour le transfert.
Merci lillith212 pour ton message, je viens juste de me lancer dans l'utilisation des bases de donnée, je me forme avec deux bouquins, mais c'est pas évident. J'ai quelques difficultés à comprendre le code du lien que tu m'a passé, mais j'y travaille. Sinon, comment fonctionne un recordset ???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
22 oct. 2008 à 10:02
J'ai trouvé un code fort utile, même si je ne comprends pas tout : http://www.vbfrance.com/code.aspx?ID=7752
Dans mon cas, je ne veux surtout pas que l'utilisateur puisse modifier les objets ou encore en rajouter donc, si je ne me trompe pas, la seule partie de ce code qui va m'intéresser est la suivante :

PrivateSub LoadFromTable()
Dim oNodex As Node
Dim nImage AsInteger
Dim nSelectedImage AsInteger
Dim i AsInteger
Dim sTableNames AsString
Dim sNodeTable AsString

' Chemin de la base de données
FileName = App.Path & "\test.mdb"

' Nom de la table traités
sNodeTable = "table1"

' Connection à la base de données
Set mDB = DBEngine.Workspaces(0).OpenDatabase(FileName)

' On vide le treeview
TreeView1.Nodes.Clear

' On crée un jeu d'enregistrement
Set mRS = mDB.OpenRecordset(sNodeTable)

If mRS.RecordCount > 0 Then
mRS.MoveFirst
DoWhile mRS.EOF = False
nImage = mRS.Fields("image")
nSelectedImage = mRS.Fields("selectedimage")

' Il s'agit d'un noeud parent
IfTrim(mRS.Fields("parent")) = "0_" Then
Set oNodex = TreeView1.Nodes.Add(, 1, Trim(mRS.Fields("key")), _
Trim(mRS.Fields("text")), nImage, nSelectedImage)
Else

' Il s'agit d'un noeud enfant
Set oNodex = TreeView1.Nodes.Add(Trim(mRS.Fields("parent")), tvwChild, _
Trim(mRS.Fields("key")), Trim(mRS.Fields("text")), nImage, nSelectedImage)

' Le noeud enfant est visible
oNodex.EnsureVisible
EndIf
mRS.MoveNext
Loop
EndIf

mRS.Close' fermeture du recordset
mDB.Close' fermeture de la base de données
EndSub

et ----------------------------------------------------------------------------------------------------------------

PrivateSub Form_Load()
Set moDragNode = Nothing ---------------------------------------------> inutile dans mon cas non ?

' Chargement du treeview avec les données de la table
Call LoadFromTable

EndSub
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
22 oct. 2008 à 10:11
Re:

En .net je sais pas car je pratique pas mais en vb6 voici un exemple
Set rsTabRec = New ADODB.Recordset
   
    rsNomrecordset.CursorLocation = adUseClient
    rsTabRec.CursorType = adOpenDynamic
   
    '-- Exemple de Creation de 3 champs au sein du recordset
    rsNomrecordset.Fields.Append "CodeErr", adVarChar, 6
    rsNomrecordset.Fields.Append "Criticite", adVarChar, 20
    rsNomrecordset.Fields.Append "Libelle", adVarChar, 255
    rsNomrecordset.Open

N'hesite pas a faire F1 sur les mots clé pour des explications
Le msdn est riche n'hesite pas à consulter en plus de tes livres
Bon courage

S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
22 oct. 2008 à 10:11
Oups!!!
Set rsNomrecordset= New ADODB.Recordset

S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
22 oct. 2008 à 18:02
Je suis tombé la dessus aussi :
C'est clair, net et précis et en plus ça correspond à ce que je veux faire. J'ai donc essayé de faire pareil mais VB plante :
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
22 oct. 2008 à 18:09
le lien : http://plasserre.developpez.com/v6-4.htm
(J'avais oublié !)
0
Rejoignez-nous