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

 

  1. #1
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    juillet 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2012
    Messages : 182
    Points : 78
    Points
    78

    Par défaut Importation de données d'excel vers access

    Bonjour,

    j'essaye d'importer des données d'un fichier Excel vers un fichier Access, je me suis inspiré d'un post code VBA que j'ai trouvé sur le forum et que j'ai adapté a mes besoins bien sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub import_Click()
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "tbl_ecriture", "C:\Users\azzedine.mimoune\Desktop\ecriture.xlsx"
        DoCmd.RunSQL "ALTER TABLE tbl_ecriture ADD CONSTRAINT PK_[NO_ENREG] PRIMARY KEY[NO_ENREG]"
    End Sub

    Des que je clique sur le bouton, j'ai le message d'erreur suivant :

    Erreur d'execution '2391':
    Le champ "F1" n'existe pas dans la table destination "tbl_ecriture"

    Mon problème c'est que je n'arrive pas a identifer le champ "F1".

    Merci d'avance pour l'aide.

    Cordialement.

  2. #2
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 008
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 008
    Points : 5 175
    Points
    5 175

    Par défaut

    bonjour,
    il faudrait soit mettre le nom des champs de la table tbl_ecriture sur la première ligne de ton fichier Excel, soit passer par une table temporaire contenant des champs nommés F1, F2, F3, etc... en précisant le type de données pour chaque champ, ensuite insérer les enregistrements de la table temporaire dans la table tbl_ecriture

  3. #3
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    juillet 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2012
    Messages : 182
    Points : 78
    Points
    78

    Par défaut

    Bonsoir tee_grandbois,

    J'ai renommé les noms de champs sur la table access et la feuille de manière a avoir les mêmes noms, maintenant j'ai un autre message d'erreur, que voici;

    Erreur d’exécution 3289

    Erreur de syntaxe dans la clause CONSTRAINT.

    Que pourrait etre la nature du probleme ?

    Merci.

    Cordialement.

  4. #4
    Expert confirmé
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    3 008
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 008
    Points : 5 175
    Points
    5 175

    Par défaut

    peut-être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ADD CONSTRAINT [PK_NO_ENREG] PRIMARY KEY([NO_ENREG])
    à la place de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ADD CONSTRAINT PK_[NO_ENREG] PRIMARY KEY[NO_ENREG]
    mais pourquoi créer une clé primaire via VBA plutôt que manuellement à la création de la table ? Cela prend plus de temps pour taper le code que de créer la clé directement.

  5. #5
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    juillet 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2012
    Messages : 182
    Points : 78
    Points
    78

    Par défaut

    Bonjour tee_grandbois,

    Bon j'ai porté la correction comme vous me l'avez dit, maintenant c'est le message initial qui revient, c'est a dire :

    Erreur d'execution '2391':
    Le champ "F1" n'existe pas dans la table destination "tbl_ecriture"

    Alors pour etre sur, sur la feuille excel, j'ai tapé le nom de la cellule F1 et aussi les autres, dans la zone de nom, c'est bien ça ?

    Je ne comprend plus.

    Cordialement.

  6. #6
    Membre éprouvé Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 774
    Points : 1 114
    Points
    1 114

    Par défaut

    Dans ce genre de manip, je crée toujours manuellement la tbl d'importation de données d'excel et après j'exécute automatiquement.
    Tu peux faire une capture d'écran de ta tbl et de ta feuille ?
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse est pertinente. N'oubliez pas svp de clôturer le sujet en cliquant sur

  7. #7
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    juillet 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2012
    Messages : 182
    Points : 78
    Points
    78

    Par défaut

    Bonjour Hyperion,

    J'ai aussi crée la table manuellement sur access.

    Table access.docxTable excel.docx

    Voila les deux captures, vous remarquerez que jai pris le soins d'avoir les memes noms de champs partout.

    cordialement.

  8. #8
    Membre éprouvé Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 774
    Points : 1 114
    Points
    1 114

    Par défaut

    A tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub import_Click()
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "tbl_ecriture", "C:\Users\azzedine.mimoune\Desktop\ecriture.xlsx", True
    End Sub
    True à la fin de la syntaxe pour indiquer que ta 1ère ligne contient les en-têtes.
    Je ne suis pas certain qu'il faille une clé primaire dans ta tbl.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse est pertinente. N'oubliez pas svp de clôturer le sujet en cliquant sur

  9. #9
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    juillet 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2012
    Messages : 182
    Points : 78
    Points
    78

    Par défaut

    Re bonjour Hyperion,

    Effectivement le "True" a fait toute la différence, ça marche.

    Merci a tous.

    Cordialement.

  10. #10
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    juillet 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2012
    Messages : 182
    Points : 78
    Points
    78

    Par défaut

    Bonjour,

    Je reouvre le post, vu que j'ai refais le meme travail ne prenant le soins de faire exactement comme la premiere fois, mais maintenant en lancant la procedure j'ai un message d'erreur:

    Erreur d'execution '2391':

    Le champ "F9" n'existe pas dans la table de destination "tbl_ecriture".

    je coince, je ne comprend pas.

    une aide serait la bienvenue.

    merci.

    cordialement.

  11. #11
    Membre éprouvé Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 774
    Points : 1 114
    Points
    1 114

    Par défaut

    Salut
    Vous avez vérifié si le nom de l'en-tête en I1 (F9=Field9) de votre feuille de calculs est le même que dans la tbl_écriture ?
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse est pertinente. N'oubliez pas svp de clôturer le sujet en cliquant sur

  12. #12
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    juillet 2012
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2012
    Messages : 182
    Points : 78
    Points
    78

    Par défaut

    Bonjour,

    Justement, j'ai effacé les données qui étaient dans la colonne F.

  13. #13
    Membre éprouvé Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 774
    Points : 1 114
    Points
    1 114

    Par défaut

    Attention, lorsque dans une procédure d'importation Excel - Access un message d'erreur vous signale que, par exemple, "le champ F9 n'existe", cela signifie que le champ n°9 n'existe pas.
    Vérifiez que le nombre de colonnes d'Excel correspond bien au nombre de champs de votre tbl
    Vérifiez également que les intitulés des en-têtes de colonnes soient identiques aux noms de champs de votre tbl
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse est pertinente. N'oubliez pas svp de clôturer le sujet en cliquant sur

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/06/2011, 12h57
  2. importer des données d'excel vers access
    Par nicolille dans le forum VBA Access
    Réponses: 8
    Dernier message: 15/02/2009, 18h41
  3. Import de données de Excel vers Access
    Par kdestine dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/09/2007, 11h48
  4. Importation de données d'Excel vers Access
    Par jolemoine dans le forum Access
    Réponses: 9
    Dernier message: 13/07/2007, 14h56

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