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.
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
Partager