Aider moi chui débutant :(

alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010 - 28 oct. 2004 à 09:37
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 - 28 oct. 2004 à 17:16
Alors j'ai un problème que j'arrive pas non seulement parce que chui bidon en algo et deuxièment je débute en Vb 6.0 . Je veux faire un treeview nommé "TV"

- J'ai une base de donnée bd1.mdb
- Dedans j'ai une table "pcseb"
- Dans cette table j'ai 3 champs "Group" , "item" et "value"

Je cherche a faire en sorte que mon treeview (TV) j'ai les noeuds principaux de "group" quand je clique sur un noeud de "group" j'ai une sous partie avec les champs "item" et quand je clique sur un item, j'ai les valeurs de "Value".
Je précise que les valeurs change dans les champs "group" et "item" donc je pense qu'il faut faire un group by.

Merci de m'aider...

_______________________
4L!@$ >>>>

12 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 oct. 2004 à 10:45
t'as regardé les exemples de treeview de ce site ??

It@li@
0
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
28 oct. 2004 à 11:25
J'ai déja mater mais chui bidon tu voi jvé te montré cke g fait


Option Explicit
Dim Rst As Recordset
Dim mNode As Node
Dim mNode1 As Node

Private Sub Form_Load()
        Set Db = DBEngine.OpenDatabase("z:\bd1.mdb")
        Call RemplirTV
End Sub

Private Sub RemplirTV()
        Dim t As Integer, n As Integer
        Set mNode = TV.Nodes.Add()
        mNode.Text = "PC"
        Set mNode1 = TV.Nodes.Add()
        Set Rst = Db.OpenRecordset("select group from pcseb order by group", dbOpenDynaset)
        While Not Rst.EOF
                For t = 1 To n
                mNode1(t).Text = Rst!Group
                Rst.MoveNext
                Next t
      
        Rst.Close
        

End Sub



Je sais que certains vont voir ca et vont tomber dans les pommes mais j'y arrive pas c'est pour ca que je demande de l'aide... :S

_______________________
4L!@$ >>>>
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 oct. 2004 à 11:54
J'ai un exemple, il pourra peut être t'aider :
Connexion à la Base par DAO ( coches Projet---> Références --> Microsoft DAO 3.51 O L)
avec un composant imageList (ImageList1) avec 2 images.

Public Function RempliTree()

Dim Nodx As Node

MousePointer = 11

TreeView1.Nodes.Clear
Set db = OpenDatabase("C:\MaBase.mdb" ) ' Définition base de donnéeSet tree db.OpenRecordset("select * from fabrication where NomOutil '" & TxtNumAVisu & "'")
If tree.RecordCount <> 0 Then
strKeyParent = "GENRE"
Set Nodx = TreeView1.Nodes.Add(, , strKeyParent, "Outil : " & TxtNumAVisu)
Nodx.EnsureVisible ' Affiche tous les nœuds.
Nodx.Sorted = True
TreeView1.ImageList = ImageList1
Do Until tree.EOF
j = j + 1
If tree("valid") = True Then
Set Nodx = TreeView1.Nodes.Add(strKeyParent, tvwChild, , tree("NomArticle") & " " & tree("NumeroArticle"), 2)
Else
Set Nodx = TreeView1.Nodes.Add(strKeyParent, tvwChild, , tree("NomArticle") & " " & tree("NumeroArticle"), 1)
End If
Nodx.EnsureVisible ' Affiche tous les nœuds.
tree.MoveNext
Loop
LblInfoTree.Caption = "- Il y a Actuellement " & j & " Articles Pour Cet Outil -"
Else
reponse = MsgBox("Cet Outil Ne posséde Pas De Liaison", vbInformation + vbOKOnly, "Information")
LblInfoTree.Caption = ""
MousePointer = 1
TreeView1.Visible = False
Exit Function
End If

TreeView1.Visible = True
MousePointer = 1

End Function

It@li@
0
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
28 oct. 2004 à 12:27
Bon j'ai réussi a voir 2 le nombre de case le prob c'est qu'il affiche pas leur intitulé des valeurs dans les champs

Private Sub RemplirTV()
        Dim i As Integer
        Set mNode = TV.Nodes.Add()
        mNode.Text = "PC"
        Set mNode1 = TV.Nodes.Add()
        Set Rst = Db.OpenRecordset("select group from pcseb group by group order by group", dbOpenSnapshot)
        While Not Rst.EOF
        mNode1.Text = Rst!Group
        mNode1 = TV.Nodes.Add(1)
        Rst.MoveNext

        Wend
Rst.Close
End Sub


_______________________
4L!@$ >>>>
0

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

Posez votre question
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
28 oct. 2004 à 15:26
pff vasi ca saoul personne vaut rien ca me bouffe on crois trop que t une bete en programmation alors on te pond un algo de fou sans commentaire et démerde toi avec ca
et ca s'appel de l'aide bah putin!!!
Merci kan même :S
Aprés on voit des postes "comment on fait pour remplir un textbox en cliquant sur une listeview?" Il ont l'aide moi chui obligé de posté 3 fois un commentaire pour avoir des réponses... c'est malheureux...

_______________________
4L!@$ >>>>
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 oct. 2004 à 15:57
calmes toi mon gars..dans la vie il y a pas toujours des mecs qui te feront ton TAFF.
il y a plein de tutos sur les Treeview.

Cherches un peu, ca ne feras que t'ameliorer.

Déja rien que le titre de ton POST ne veut rien dire.
Relis les régles du FORUM : un Titre représentatif de ton Souci.
on se doute que si tu postes s'est que t'as besoin d'aide !!

tu comprends

@+

It@li@
0
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
28 oct. 2004 à 16:08
Ouais mais bon ca m'nrv j'essaye de réussir pi jy arrive pas.
Jme di que mon avenir est pratiquement niquer parceke chui en BTS IG en option développeur d'application et génie logiciel on dirai pas
Note en Algo : 6/20
voila cki m'nrv.

_______________________
4L!@$ >>>>
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 oct. 2004 à 16:23
Désolé mec..regardes les tutos peu à peu tu y arriveras.

j'ai fait une license en Genie Logiciel.
c cool

It@li@
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 oct. 2004 à 16:36
Essayes en DAO, et tiens moi au courant :
( coches Projet---> Références --> Microsoft DAO 3.51 Object Library )

Dim Nodx As Node

MousePointer = 11

TreeView1.Nodes.Clear
Set db = OpenDatabase("z:\bd1.mdb")
Set tree = db.OpenRecordset("SELECT Group FROM pcseb ORDER BY group")
If tree.RecordCount <> 0 Then
strKeyParent = "GENRE"
Set Nodx = TreeView1.Nodes.Add(, , strKeyParent, "Outil :")
Nodx.EnsureVisible ' Affiche tous les nœuds.
Nodx.Sorted = True
Do Until tree.EOF
Set Nodx = TreeView1.Nodes.Add(strKeyParent, tvwChild, , tree("Group"))
tree.MoveNext
Loop
End If

Set tree = Nothing
Set db = Nothing

MousePointer = 1

It@li@
0
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
28 oct. 2004 à 16:51
Jvais regardé mais bon j'ai a peut pret réussi en faisant autre chose le seul prob c'est que je n'aarive pas a regroupé les champs en 1 car j'ai plusieur champs qui se noimment pareil mais le prob c'est que les infos qu'ils renvoient sont pas les memes. regarde dis-moi si c'est bien?

Private Sub RemplirTV(C1 As TreeView)
        Dim Rst As Recordset, Rst2 As Recordset, NodeX As Node
        Dim IndexGroup As Long, NomNoeud As String
        C1.Nodes.Clear
        Set Rst = Db.OpenRecordset("Select * from pcseb order by group asc", dbOpenSnapshot)
        Set NodeX = C1.Nodes.Add(, , , "PC")
        C1.Nodes.Item(NodeX.Index).Bold = True
        While Not Rst.EOF        Set Rst2 Db.OpenRecordset("select * from pcseb where group group")
                If Not Rst2!Group = NodeX.Text Then
                Set NodeX = C1.Nodes.Add(1, tvwChild, , Rst!Group)
                C1.Nodes.Item(NodeX.Index).Tag = 1 & "|" & Rst!Numéro
                IndexGroup = NodeX.Index
        Rst.MoveNext
        End If
        Wend
        
        Rst.Close
End Sub

_______________________
4L!@$ >>>>
0
alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010
28 oct. 2004 à 16:55
Voici le bon code dans l'autre j'ai mis des conneries comme d'hab

Private Sub RemplirTV(C1 As TreeView)
        Dim Rst As Recordset, Rst2 As Recordset, NodeX As Node
        Dim IndexGroup As Long, NomNoeud As String
        C1.Nodes.Clear
        Set Rst = Db.OpenRecordset("Select * from pcseb order by group asc", dbOpenSnapshot)
        Set NodeX = C1.Nodes.Add(, , , "PC")
        C1.Nodes.Item(NodeX.Index).Bold = True
        While Not Rst.EOF
                Set NodeX = C1.Nodes.Add(1, tvwChild, , Rst!Group)
                C1.Nodes.Item(NodeX.Index).Tag = 1 & "|" & Rst!Numéro
                IndexGroup = NodeX.Index
        Rst.MoveNext
        End If
        Wend
        
        Rst.Close
End Sub

_______________________
4L!@$ >>>>
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 oct. 2004 à 17:16
Essayes dabord mon code et dis moi si c'est ok.
Aprés on passeras à la suite

si tu veux qu'un GROUP n'apparaissa qu'un fois change la requéte ainsi --->
SELECT DISTINCT Group FROM pcseb ORDER BY group

It@li@
0
Rejoignez-nous