Ce code permet de connecté un treeview à deux tables dans une base de données Acces. En utilisant le click droit de la souris vous pouvez ajouter un élément à une table. Ce code utilise Microsoft ADO Data Control 6.0 (OLEDB).
N'oubliez pas de changer le path pour la connection à la base de données.
Source / Exemple :
' ************************************************
' * Module a ete developpe par Sebastien CORDIER *
' * s-cordier@ibertysurf.fr *
' ************************************************
' * Variables globales *
Dim Con As New Connection ' Connection au moteur ADO
Dim Cmd As New Command ' Commande pour le moteur ADO
Dim RS As Recordset ' Tableau resultat
Dim strQuery As String ' Chaine de requête
Dim bselect As Boolean ' Selection
Dim strKeySelect As String ' Cle de selection-
Private Sub Form_Load()
Dim strKeyParent As String
Dim strKeyChild As String
Dim nodx As Node
' Definition de la chaine de connection
' c'est ici qu'il faut modifier le chemin de la base de donnée : Data Source=
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Developpement\Projet\Video.mdb;Persist Security Info=False"
' Connection à la base de donnée
Con.Open
' Affectation des commandes à la connection active
Cmd.ActiveConnection = Con
' Table des Genres
strQuery = "SELECT * from Genre ORDER BY GENRE"
strKeyParent = "GENRE"
Cmd.CommandText = strQuery
Set RS = Cmd.Execute
Set nodx = TreeView1.Nodes.Add(, , strKeyParent, "Genre")
nodx.Sorted = True
While (Not RS.EOF)
strKeyChild = "G" & CStr(RS!ID_GENRE)
Set nodx = TreeView1.Nodes.Add(strKeyParent, tvwChild, strKeyChild, RS!GENRE)
nodx.Sorted = True
RS.MoveNext
Wend
Set RS = Nothing
' Tables des supports
strQuery = "SELECT * from Support ORDER BY SUPPORT"
strKeyParent = "SUPPORT"
Cmd.CommandText = strQuery
Set RS = Cmd.Execute
Set nodx = TreeView1.Nodes.Add(, , strKeyParent, "Support")
nodx.Sorted = True
While (Not RS.EOF)
strKeyChild = "S" & CStr(RS!ID_SUPPORT)
Set nodx = TreeView1.Nodes.Add(strKeyParent, tvwChild, strKeyChild, RS!SUPPORT)
nodx.Sorted = True
RS.MoveNext
Wend
Set RS = Nothing
End Sub
Private Sub Form_Unload(Cancel As Integer)
Con.Close
End Sub
Private Sub mnuAjouter_Click()
Dim str As String
Dim stype As String
Dim nodx As Node
Dim strKey
stype = strKeySelect
str = InputBox("Veuillez saisir le nouvelle element " & stype)
If (str <> "") Then
If (stype = "GENRE") Then
strQuery = "INSERT INTO Genre (GENRE) VALUES('" & str & "')"
Cmd.CommandText = strQuery
Set RS = Cmd.Execute
strQuery = "SELECT * from Genre where GENRE='" & str & "'"
Cmd.CommandText = strQuery
Set RS = Cmd.Execute
If (Not RS.EOF) Then
strKey = "G" & CStr(RS!ID_GENRE)
Set nodx = TreeView1.Nodes.Add(strKeySelect, tvwChild, strKey, str)
nodx.Sorted = True
End If
Set RS = Nothing
ElseIf (stype = "SUPPORT") Then
strQuery = "INSERT INTO Support (SUPPORT) VALUES('" & str & "')"
Cmd.CommandText = strQuery
Set RS = Cmd.Execute
strQuery = "SELECT * from Support where SUPPORT='" & str & "'"
Cmd.CommandText = strQuery
Set RS = Cmd.Execute
If (Not RS.EOF) Then
strKey = "S" & CStr(RS!ID_SUPPORT)
Set nodx = TreeView1.Nodes.Add(strKeySelect, tvwChild, strKey, str)
nodx.Sorted = True
End If
End If
End If
End Sub
Private Sub TreeView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If ((Button = vbRightButton) And bselect) Then
PopupMenu mnuFile
End If
End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
If (Node.Children = 0) Then
bselect = False
strKeySelect = ""
Exit Sub
End If
bselect = True
strKeySelect = Node.Key
End Sub
Conclusion :
Sur la branche principal (Genre, Support) du Treeview, cliquez sur Genre ou Support avec le bouton gauche de la souris pour le mettre en surbrillance, effectuez un click droit de la souris, une fonction ajout s'affiche.
Cliquez dessus , un module s'affiche à l'écran, saisissez ce que vous souhaitez ajouter et valider. L'ajout se positionne dans le treeview par odre alphabétique et également dans la base de données. Vous pouvez effectuez le même procédé pour une suppression ou une modification.
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.