C'est chaud sous access. Prends d'abord un listview (LV1) et treeview(TV1) et imageList1 6.0 dans un form Place une image de dossier dans l'imageList1 et appelle le "Dossier"
'Le load ne liste que les HDD Private Sub Form_Load() Dim fs As Object Dim dc, d Dim str, n, img As String
Set fs = CreateObject("Scripting.FileSystemObject") Set dc = fs.Drives For Each d In dc If (d.IsReady) Then str = fs.GetDrive(d.Driveletter).RootFolder Else: GoTo suite2 End If Select Case d.DriveType Case 0: n = "Inconnu" Case 1: n = "Amovible" Case 2: n = d.VolumeName img = "HDD" Case 3: n = d.ShareName img = "DR" Case 4: n = "CD-ROM" img = "CD" Case 5: n = "Disque RAM" End Select
n = n & " (" & d.Driveletter & ":)" 'Création des noeuds racines des disques) If (d.DriveType <> 3) Then Me.TV1.Nodes.Add , , str, n, img AjouteRep str End If suite2: Next End Sub
'Procédure récursive permettant de créer tous les nodes issus de l'arborescence du ou des disques
Private Sub AjouteRep(ByVal str As String) Dim fs, f, fld, fld1, sf Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(str) Set sf = f.SubFolders For Each fld In sf If fld.Name = "RECYCLER" Then GoTo suite If fld.Name = "System Volume Information" Then GoTo suite 'ajoute les dossier If f.IsRootFolder = True Then Me.TV1.Nodes.Add str, tvwChild, fld.Path, fld.Name, "Dossier" 'Ajoute les sous dossiers AjouteRep fld.Path Else: Me.TV1.Nodes.Add str, tvwChild, fld.Path, fld.Name, "Dossier" AjouteRep fld.Path End If suite: Next End Sub
Voilà, qui t'avancera un peu, ensuite à toi de jouer pour la gestion des clicks en tout genre. Attention, n'oublies pas que sous access, il faut écrire Private Sub TV1_NodeClick(ByVal Node As Object) Private Sub LV1_ItemClick(ByVal Item As Object)
TBBUIM
|