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 :

Import excel dans access


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Import excel dans access
    Bonjour,

    Je cherche à mettre mon code vba Excel sous access mais j' y arrive pas! Je vous explique: Il s'agit d'un code qui fait de l' import des colonnes excel dans une table access, sauf que le code je le mettais sous excel; maintenant, Je souhaite mettre le code sous access, comme ça je peux faire cet import à partir de n'importe quel fichier excel vers ma base access.



    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
    Sub ADOFromExcelToAccess()
    Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
        Chemin = ActiveWorkbook.Path
        Set db = OpenDatabase("chemin database.mdb")
        Source = Chemin & "\database name"
        Set cn = New ADODB.Connection
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " & Source & ";"
     
        ' open a recordset
        Set rs = New ADODB.Recordset
        rs.Open "[MA TABLE ACCESS]", cn, adOpenKeyset, adLockOptimistic, adCmdTable  ' all records in a table
     
           r = 2 ' the start row in the worksheet
        Do While Len(Range("A" & r).Formula) > 0 ' repeat until first empty cell in column A
            With rs
                .AddNew ' create a new record
                ' add values to each field in the record
                .Fields("COL1") = Range("A" & r).Value
                .Fields("COL2") = Range("B" & r).Value
     
                .Update ' stores the new record
            End With
            r = r + 1 ' next row
        Loop
        rs.Close
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
        End Sub
    Merci d'avance,

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         cSQL = "INSERT INTO test ( [champ1], [champ2], [champ3], [champ4], [champ5], [champ6],[champ7] ,[champ8] ,[champ9]  ) SELECT F1, F2, F3, F4, F5, F6, F7, F8, F9 FROM  [" & Feuille & "$] in '" & Dossier & "\" & Fichier & "' 'excel 8.0;HDR=No;IMEX=1;' ;"
    CurrentDb.Execute cSQL

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci rdurupt!
    "test" correspond bien à ma table access?

  4. #4
    Invité
    Invité(e)
    Par défaut
    A vrai dire, j'en sais rien, comme les champs, je ne sais même pas si la première ligne de ton fichier Excel continent les entête colonne ou non dans mon exemple j'ai mis non mais je ne sais pas!

    Il faut m'en dire un peut plus sur le nom de ta table et le nom de champs ansi que sur t feuille Excel si tu veux que j'en dise plus!

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    -Ma feuille Excel"Resultats" comporte les entêtes suivants: Id_pays, Nom_pays, Resultat.
    -Ma table Access s'appelle IMPORT_ExcelToAccess, les attributs de cette table seront alors: ID_country, Name_Country, Result.

    Merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Nom : Sans titre.png
Affichages : 192
Taille : 2,8 Ko Image= FROM [Resultats$]

    Code voila à quoi devrait ressembler ta requête! : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cSQL = "INSERT INTO [IMPORT_ExcelToAccess] ([ID_country], [Name_Country], [Result]  ) SELECT [Id_pays], [Nom_pays],[Resultat] FROM  [Resultats$] in 'c:\MyRepertoire\MyFichier.xlsx' 'excel 8.0;HDR=Yes;IMEX=1;' ;"
    CurrentDb.Execute cSQL
    Dernière modification par Invité ; 20/05/2016 à 11h12.

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci bcp rdurupt!

    Ton code avec [peu de lignes] marche super bien! Tu m'as sauvée la vie !
    Bon weekend

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Juste pour information la même requête fonctionnait sur Excel!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set cn = New ADODB.Connection
     cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " & Source & ";"
    cSQL = "INSERT INTO [IMPORT_ExcelToAccess] ([ID_country], [Name_Country], [Result]  ) SELECT [Id_pays], [Nom_pays],[Resultat] FROM  [Resultats$] in 'c:\MyRepertoire\MyFichier.xlsx' 'excel 8.0;HDR=Yes;IMEX=1;' ;"
    Cn.Execute cSQL

Discussions similaires

  1. Import Excel dans Access, problème date et heure
    Par Car0le dans le forum Access
    Réponses: 1
    Dernier message: 20/01/2014, 12h17
  2. Importer excel dans access en VB6
    Par MatAllwhite dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 26/03/2013, 11h33
  3. import excel dans Access
    Par mmanta1 dans le forum Access
    Réponses: 2
    Dernier message: 05/08/2008, 15h59
  4. [Automation]pb import excel dans access
    Par zeloutre dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/04/2007, 11h16
  5. problème d'importation excel dans access
    Par Badboy62cfp dans le forum Access
    Réponses: 6
    Dernier message: 09/05/2006, 16h17

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