Treeview d'une base de donnée

Description

Treeview permettant de hierarchiser une base de donnée et d'afficher des données corespondantes a un noeud pere

Source / Exemple :


Option Explicit
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim i As Integer
Dim j As Integer

Dim nom As String

Private Sub Form_Load()
   Set cn = New ADODB.Connection
   cn.Open "provider = microsoft.jet.oledb.4.0;data source = c:\bd\vb6.mdb", "", ""
   Set rs = New ADODB.Recordset
trvbd.Nodes.Add , , "racine", "Base de données VB6"
   
   rs.Open " select * from relation ", cn, adOpenStatic, adLockReadOnly, adCmdText
   
   Do While Not rs.EOF
   
      nom = rs.Fields(0).Value
   
      On Error Resume Next
      
      'on extrait les valeurs contenu ds les colonnes (rs.fields(0).values)
      trvbd.Nodes.Add "racine", tvwChild, nom, nom

      trvbd.Nodes.Add nom, tvwChild, nom & rs.Fields(1).Value, rs.Fields(1).Value
         
      rs.MoveNext
         
   Loop
   
End Sub

Private Sub trvbd_NodeClick(ByVal Node As MSComctlLib.Node)

   rs.MoveFirst
   
   On Error Resume Next
   
   Do While Not rs.EOF 'scan la bd jusqu'a la fin

      'si le noeud parent = une donnée de la colonne nomcontrole et le noeudfils = une donnée de la colonne nompropriete alors
      If Node.Parent.Text = rs.Fields("nomcont").Value And Node.Text = rs.Fields("nomprop").Value Then
      
         lbprprt.Caption = rs.Fields("exemple").Value 'on renvoit la donnée de la colonne exemple correspondante dans le caption
         
         Exit Do 'sortie de la boucle
         
      End If
      
      rs.MoveNext 'on avance le curseur de 1
     
      
   Loop
   
   'si si le noeud parent = une donnée de la colonne nomcontrole et le noeudfils = rien alors
   If Node.Parent.Text = rs.Fields("nomcont").Value And Node.Text = "" Then
   
      lbprprt.Caption = "" 'on ecris rien ds le caption
      
   End If
   
End Sub

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.