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

Access Discussion :

Importer des csv dans une table Access [AC-2007]


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Importer des csv dans une table Access
    Bonjour,

    Ce code de la FAQ Excel importe des données csv dans une nouvelle table Access.

    Pouvez vous me dire ce qu'il faut modifier pour que les données soient importées toujours dans la même table ?

    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
     
    Sub tranfertCSV_Vers_NouvelleTableAccess()
        'Transfére un fichier CSV vers une nouvelle table Access
        'depuis une macro Excel.
        '
        'Nécessite d'activer la référence
        '"Microsoft ActiveX Data Objects x.x Library
        '
     
        Dim AccessCn As ADODB.Connection
        Dim AccessRst As ADODB.Recordset
        Dim Csv_CN As New ADODB.Connection
        Dim Csv_Rst As New ADODB.Recordset
        Dim DossierCSV As String, NomTable As String
        Dim FichCSV As String, MaBase As String
        Dim nbEnr As Long
     
        'Répertoire du fichier CSV
        DossierCSV = "C:\Documents and Settings\mimi\dossier"
        'Nom du fichier CSV à transfèrer
        FichCSV = "LeFichierCSV.csv"
        'Chemin et nom de la base Access
        MaBase = "C:\Documents and Settings\mimi\dossier\dataBase.mdb"
        'Nom de la nouvelle Table Access
        NomTable = "MaNouvelleTable"
     
     
        'Connection au fichier CSV
        Csv_CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
            DossierCSV & ";Extended Properties='text;FMT=Delimited'"
        'Requète dans le fichier CSV
        Csv_Rst.Open "SELECT * FROM " & FichCSV, Csv_CN, _
            adOpenStatic, adLockOptimistic
     
        'Connection à la base de données Access
        Set AccessCn = New ADODB.Connection
        AccessCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                       "Data Source=" & MaBase
     
     
        Csv_CN.Execute "SELECT * INTO [" & NomTable & "] IN '" & _
            MaBase & "' From [" & FichCSV & "]", nbEnr
     
     
        AccessCn.Close
        Csv_Rst.Close
        Csv_CN.Close
        Set AccessRst = Nothing
        Set AccessCn = Nothing
        Set Csv_Rst = Nothing
        Set Csv_CN = Nothing
    End Sub

  2. #2
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 465
    Points : 549
    Points
    549
    Par défaut
    bonjour,

    Si ce code te convient pourquoi ne pas le garder ?
    Tu peux :
    1. exécuter cette Sub tranfertCSV_Vers_NouvelleTableAccess()
    2. ajouter une APPEND Query qui va ajouter touttes les données de "MaNouvelleTable" à "MaTable existante"
    3. detruire "MaNouvelleTable" dont tu n'as plus besoin

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci de ton aide, je pensais qu'il était possible d'ajouter directement les données du csv à une table existante.

    Peux tu m'aider pour l'APPEND ? je débute.

    Pour le DELETE de la table temporaire j'espère y arriver !

    Merci encore.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Voici un exemple basé sur le code que tu as posté.
    Les données du fichier CSV sont ajoutées à la table Access désignée.
    Il faut impérativement que la table Access comporte tous les champs qui seront trouvés dans le fichier 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub tranfertCSV_Vers_TableAccessExistante()
        'Transfére un fichier CSV vers une table Access existante
        '
        'Nécessite d'activer la référence
        '"Microsoft ActiveX Data Objects x.x Library
     
        Dim Csv_CN As New ADODB.Connection
        Dim DossierCSV As String, NomTable As String
        Dim FichCSV As String, MaBase As String
        Dim nbEnr As Long
     
        'Répertoire du fichier CSV
        DossierCSV = "C:\Documents and Settings\mimi\dossier"
        'Nom du fichier CSV à transfèrer
        FichCSV = "LeFichierCSV.csv"
        'Chemin et nom de la base Access
        MaBase = "C:\Documents and Settings\mimi\dossier\dataBase.mdb"
        'Nom de la nouvelle Table Access
        NomTable = "MaNouvelleTable"
     
        'Connexion au fichier CSV
        Csv_CN.Open "Provider=Microsoft.Jet.OLEDB.4.0" & _
                    ";Data Source=" & DossierCSV & _
                    ";Extended Properties='text;FMT=Delimited'"
     
        ' Requête Ajout
        Csv_CN.Execute "INSERT INTO [" & NomTable & "] IN '" & MaBase & "' " & _
                       "SELECT TCSV.* " & _
                       "FROM [" & FichCSV & "] As TCSV", nbEnr
     
        Csv_CN.Close
        Set Csv_CN = Nothing
    End Sub
    A+

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci LedZeppII, c'est exactement ce que je voulais obtenir.

    Il me reste juste à gérer un étrange problème de TextQualifier dans mes csv.

    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Importer des données d'une table Access dans Excel
    Par moussss86 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2013, 10h30
  2. [AC-2003] Importer un Fichier Csv dans une table Access
    Par jmde dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/01/2010, 12h35
  3. Importer un fichier CSV dans une table Access
    Par zemeilleurofgreg dans le forum Bases de données
    Réponses: 17
    Dernier message: 09/07/2008, 22h48
  4. extraction des données dans une table Access
    Par moabomotal dans le forum Access
    Réponses: 2
    Dernier message: 26/05/2006, 11h17
  5. Inserer des données dans une table access SQL
    Par ouellet5 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/11/2005, 21h11

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