Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008
-
21 oct. 2008 à 20:57
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 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.
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 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 -- <
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 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 ???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 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
'-- 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 -- <
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 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 -- <
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 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 :