Bonjour à tous, je voudrais faire remplir automatiquement (VBA) les sous-formulaires Albums, CD et Titres mais je coince.
Sur la première copie d'écran, c'est ce que j'obtiens avec VBA.
Sur la seconde, ce que j'aimerais.

En fait, la procédure écris bien les sous-dossiers mais pas sur l'enregistrement concerné (1re image).
Merci pour votre aide.

Nom : Coll1.jpg
Affichages : 281
Taille : 249,7 Ko
Nom : Col2.jpg
Affichages : 232
Taille : 253,6 Ko

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
Sub arborescence()
    dossier = Racine & Forms![frm_artistes].cmbRecherche.Column(1)
    If dossier = "" Then Exit Sub
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set dossier_racine = fs.GetFolder(dossier)
    Lit_dossier dossier_racine, 0
End Sub
 
Sub Lit_dossier(ByRef dossier, ByVal niveau)
    Dim rsCD As DAO.Recordset
    Dim rsAlbum As DAO.Recordset
    Dim rsTitre As DAO.Recordset
    Set rsCD = CurrentDb.OpenRecordset("SELECT * from tbl_CD")
    Set rsAlbum = CurrentDb.OpenRecordset("SELECT * from tbl_Albums")
    Set rsTitre = CurrentDb.OpenRecordset("SELECT * from tbl_Titres")
 
    Select Case niveau
        Case 1
            'niveau = 1, écrire dans la table album
            rsAlbum.AddNew
            rsAlbum![N°Artiste] = Forms![frm_artistes].cmbRecherche.Column(0)
            If Mid(dossier.Name, 5, 3) = " - " Then
                rsAlbum![Album] = Right(dossier.Name, Len(dossier.Name) - 7)
                rsAlbum![Année] = Left(dossier.Name, 4)
            Else
                rsAlbum![Album] = dossier.Name
                rsAlbum![Année] = 0
            End If
            rsAlbum.Update
            Forms![frm_artistes]![frm_Albums Sous-formulaire].Requery
 
        Case Is > 1
            'niveau > 1 écrire dans table cd
            rsCD.AddNew
            rsCD![N°Album] = Forms![frm_artistes]![frm_Albums Sous-formulaire]![NumAlbum]
            rsCD![Album] = dossier.Name
            rsCD![Année] = Forms![frm_artistes]![frm_Albums Sous-formulaire]![Année]
            rsCD.Update
            Forms![frm_artistes]![frm_CD Sous-formulaire].Requery
 
    End Select
    For Each d In dossier.SubFolders
        Lit_dossier d, niveau + 1
    Next
    For Each f In dossier.Files
        nom_fich = f.Name
'           reste de la procédure à écrire
'
'            Debug.Print nom_fich
    Next
End Sub