IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Macro Access import CSV et move files


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut Macro Access import CSV et move files
    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.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 473
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileList = Dir(FolderName & "\*.csv")
    Je te deconseille d'utiliser l'instruction Dir, son resultat n'est pas suffisement fiable à mon goût.

    Par contre, l'objet FSO te fournit plusieurs fonctionalités pour manipuler les disques, dossiers ou fichiers.
    Les objets Folder et File devraient t'interresser particulièrement.
    Plus d'infos ici: http://warin.developpez.com/access/fichiers/

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    Un grand merci à toi je vais regarder cela attentivement.

    Tu me conseillerais d'utiliser quelle instruction à la place du Dir ?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 473
    Par défaut
    Citation Envoyé par deedolith Voir le message
    Les objets Folder et File devraient t'interresser particulièrement.

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/05/2008, 21h09
  2. macro access (import d'une valeur d'excel)
    Par jackfred dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/07/2007, 08h02
  3. [Macro]Problème d'importation .CSV avec macro
    Par Eric Harvey dans le forum VBA Access
    Réponses: 8
    Dernier message: 12/04/2007, 17h04
  4. Réponses: 2
    Dernier message: 11/04/2007, 23h52
  5. [ACCESS 2003] - Importation *.csv
    Par guiguikawa dans le forum Access
    Réponses: 3
    Dernier message: 29/06/2006, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo