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

Soyez le premier à donner votre avis sur cette source.

Vue 10 557 fois - Téléchargée 1 546 fois

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

Ajouter un commentaire

Commentaires

cs_jenial
Messages postés
10
Date d'inscription
mercredi 5 juin 2002
Statut
Membre
Dernière intervention
23 juillet 2004
-
bel exemple
cs_Wbbrcaal
Messages postés
16
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
11 mars 2004
-
Salut à tous, j'ai besoin de votre aide. Voilà j'ai une base access 2000 connecté sur un treeview je peut donc tout faire OK, sauf pour rechercher dans les treeviews (il y à plusieurs noeuds et childs) y'a-t-il quelqu'un pour m'aider dans ce sens ?

Le but donc rechercher dans les treeview ex: dans une input box ou autre, on veux rechercher le mot 'auto' alors on tape 'A', et tout ce qui à rapport avec ce a s'affiche dans la treview. ainsi de suite. dés que ce que je recherche est présent dans la treeview, en cliquant dessus j'ai ce que je veux. merci de votre aide.. Wbbr
bobbond
Messages postés
3
Date d'inscription
vendredi 6 décembre 2002
Statut
Membre
Dernière intervention
6 décembre 2002
-
Super sympa.
Je n'aivais jamais utiliser l'ADAO c'est plutôt bien.

merci
Wbbr
Messages postés
6
Date d'inscription
mercredi 31 octobre 2001
Statut
Membre
Dernière intervention
23 février 2003
-
Re bonjour, toujours pas de réponse pour la connexion d'une treeview à une basse...
Wbbr
Messages postés
6
Date d'inscription
mercredi 31 octobre 2001
Statut
Membre
Dernière intervention
23 février 2003
-
C'est trés intéressant, je me demandais si ce treview pour être connecter à une base de données existante... ( je ne suis pas tres fort la dedans..) merci pour la reponse wbbr_caal@hotmail.com

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.