Treeview connecté à une bd utilisant le click droit de la souris en ado

Description

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.

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.