Bonjour à tous !!
Je possède un répertoire qui contient plusieurs sous-répertoires qui eux-mêmes contiennent 8 images. Je souhaite enregistrer dans une table la liste complète des photos associées du nom de chaque répertoire. J'ai donc tenté une boucle à l'intérieur d'une boucle avec la commande vb DIR. Voici mon code
Il réussi a accéder à la deuxième boucle, enregistre bien les images du premier sous-répertoire dans la table mais bug lors du passage au deuxième sous-répertoire et me renvoie sur la ligne :
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 DoCmd.SetWarnings False Dim t As DAO.Recordset, repertoire As String, fichier As String, var As String 'répertoire des fichiers à récupérer repertoire = "C:\...\dossier\" 'vide la table tbFichiers DoCmd.RunSQL "DELETE chemin_images.* FROM IMAGES;" Set t = CurrentDb.OpenRecordset("IMAGES") fichier = Dir(repertoire, vbDirectory) 'première boucle Do While fichier <> "" 'condition pour les répertoires courants If fichier <> "." And fichier <> ".." Then 'condition pour ne sélectionner que les répertoire If (GetAttr(repertoire & fichier) And vbDirectory) = vbDirectory Then 'variable qui récupère le chemin de chaque sous-répertoire var = repertoire & (fichier) & "\" fichier2 = Dir(var) 'deuxième boucle qui récupère le nom de chaque image et les enregistre dans la table Do While fichier2 <> "" If fichier2 <> "." And fichier2 <> ".." Then t.AddNew t!chemin_images = fichier & "_" & fichier2 t.Update fichier2 = Dir End If Loop End If End If 'debug fichier = Dir Loop t.Close Set t = Nothing DoCmd.SetWarnings TrueSi vous avez une petite idée ou une autre technique, merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part fichier = Dir





Répondre avec citation






Partager