Bonjour,
Je suis en train de créer une macro sous Access pour importer des fichiers csv et j'aimerais qu'après l'import des CSV dans la base Access, je puisse déplacer les fichiers traités vers un autre répertoire.
J'ai pu voir pour l'import des csv dans la base Access mais je bloque sur le déplacement des fichiers.

Actuellement, ma macro qui fonctionne pour l'import des CSV :

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
 
Public Sub RepertoireList()
    Dim FolderName As String
    Dim FileList As String
    Dim FileToBeLoaded As String
 
    tblName = "Table_Test" 'This is to import all files into one table.
    FolderName = "c:\CSV\"
    FolderNameMove = "c:\CSV\Old"
    FileList = Dir(FolderName & "\*.csv")
 
    While (Len(Trim$(FileList)) > 0)
 
        If (Len(Trim$(FileList))) > 0 Then
            FileToBeLoaded = FolderName & FileList
            DoCmd.TransferText acImportDelim, "Test2 Import Specification", tblName, FileToBeLoaded, False
 
        End If
        FileList = Dir
 
    Wend   
 
End Sub
J'ai ajouté la méthode FSO.MoveFile pour le déplacement des fichiers, mais cela ne fonctionne pas sans que j'arrive à voir ce qui bloque :

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
Public Sub RepertoireList()

    Dim FolderName As String
    Dim FileList As String
    Dim FileToBeLoaded As String
    
    tblName = "Table_Test" 'This is to import all files into one table.
    FolderName = "c:\CSV\"
    FolderNameMove = "c:\CSV\Old"
    FileList = Dir(FolderName & "\*.csv")
    
    While (Len(Trim$(FileList)) > 0)
        
        If (Len(Trim$(FileList))) > 0 Then
            FileToBeLoaded = FolderName & FileList
            DoCmd.TransferText acImportDelim, "Test2 Import Specification", tblName, FileToBeLoaded, False
        End If
        FileList = Dir
    Wend
    
    'Move files after import
            Set FSO = CreateObject("scripting.filesystemobject")
            FSO.MoveFile Source:=FolderName, Destination:=FolderNameMove
End Sub
En Debug, j'ai l'alerte "Run-Time error '53' File not found".
Ce que je ne comprends pas car il voit bien le fichier et qu'il est traité pour l'import dans ma base Access.
Auriez-vous une idée du problème ??

D'autre part, j'aimerais que cette macro puisse s’exécuter à chaque fois que l'utilisateur ouvre la DB Access : y'a t'il une méthode qui permettent de le faire ?

Merci d'avance.