Bonjour,
Dans une table de ma base de données, je récupère les "métadonnées" (informations sur les fichiers) des fichiers enregistrés dans certains répertoires.
Pour cela j'utilise le code recopié ci-dessous (piqué je ne sais plus où, car je suis une piètre bidouilleuse sans formation initiale en programmation) : la première sub étant appelée depuis un bouton de mon formulaire qui opère au préalable une série de vérifications... Ceci fonctionne parfaitement, mais je voudrais maintenant - compléter ce code de façon à ce que ne soient importées que les données des fichiers qui ne sont pas déjà présentes dans ma table. Autrement dit que le système compare - pour un chemin donné - les enregistrements existants dans ma table (le chemin étant enregistré dans le champ "CheminFich") avec l'ensemble des fichiers effectivement présents dans le répertoire ad-hoc.
Je ne sais comment m'y prendre... Pouvez-vous m'aider ?
Merci d'avance,
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 Sub CompleteMetadon() Dim ChemRepObjet As String ChemRepObjet = "I:\" & Me![Abreviation] & "\" & Me![Refobjet] Dim chemRepPhase As String chemRepPhase = ChemRepObjet & "\" & "Phase-0" & "\" Dim NomRepDossier As String NomRepDossier = EnleverAccents(Me![NumFonds]) & "-10000" Dim chemRepDossier As String chemRepDossier = chemRepPhase & "\" & NomRepDossier & "\" Set oFSO = CreateObject("Scripting.FileSystemObject") sChemin = chemRepDossier sTmp = "" ComparToutesMeta sChemin, 0 Set oFSO = Nothing End Sub Sub ComparToutesMeta(spath As String, Niv As Long) Dim oDc As Object Dim oD As Object Dim oF As Object Dim copRepName As String Dim copRepDateCopie As String 'DateCopie => DateCreated Dim copRepDateModif As String 'DateDernModif => DateLastModified Dim copRepChemin As String 'CheminFich => Path Dim copFichName As String Dim copFichDateCopie As String 'DateCopie => DateCreated Dim copFichDateModif As String 'DateDernModif => DateLastModified Dim copFichChemin As String 'CheminFich => Path Dim copFichTaille As String 'TailleFich => Size Dim copFichtype As String 'FormatFich => type If oFSO.FolderExists(spath) Then Set oDc = oFSO.GetFolder(spath) Dim MaBD As Database, MaTable As Recordset If spath <> sChemin Then copRepName = oDc.name copRepDateCopie = oDc.DateCreated copRepDateModif = oDc.DateLastModified copRepChemin = oDc.Path Set MaBD = DBEngine.Workspaces(0).Databases(0) Set MaTable = MaBD.OpenRecordset("MetadonDescFichiers") MaTable.AddNew ' Crée un nouvel enregistrement directement dans la table MaTable("IdFichier") = copRepName MaTable("DateCopie") = copRepDateCopie MaTable("DateDernModif") = copRepDateModif MaTable("CheminFich") = copRepChemin MaTable("RefObjLie") = Forms![FmrInvObjMetadon]![RefObjetNum] MaTable("RefDosLie") = Forms![FmrInvObjMetadon]![RefDossCopie] MaTable.Update MaTable.Close End If If oDc.files.count > 0 Then For Each oF In oDc.files copFichName = oF.name copFichDateCopie = oF.DateCreated copFichDateModif = oF.DateLastModified copFichChemin = oF.Path copFichTaille = oF.Size copFichtype = oF.Type Set MaBD = DBEngine.Workspaces(0).Databases(0) Set MaTable = MaBD.OpenRecordset("MetadonDescFichiers") MaTable.AddNew ' Crée un nouvel enregistrement directement dans la table MaTable("IdFichier") = copFichName MaTable("DateCopie") = copFichDateCopie MaTable("DateDernModif") = copFichDateModif MaTable("CheminFich") = copFichChemin MaTable("TailleFich") = copFichTaille MaTable("FormatFich") = copFichtype MaTable("RefObjLie") = Forms![FmrInvObjMetadon]![RefObjetNum] MaTable("RefDosLie") = Forms![FmrInvObjMetadon]![RefDossCopie] MaTable.Update MaTable.Close Next Set oF = Nothing End If For Each oD In oDc.SubFolders ComparToutesMeta spath & "\" & oD.name, Niv + 1 Next End If Set oDc = Nothing Set oD = Nothing Forms![FmrInvObjMetadon]![FmrInvObjMetadonSF].Form.Requery End Sub
Partager