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 :

importer un nombre n de fichiers excel vers Une table access


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut importer un nombre n de fichiers excel vers Une table access
    Bonjour,
    j'ai essayé ce code mais il ne fonctionne pas
    je ne pense pas être très loin
    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
    Sub rojh()
     
     
    'Declaration de la valeur répertoire
    Dim répertoire As String
    'Recuperation de la liste des fichiers
    répertoire = Dir("C:\Users\9305743N\Desktop\programme\dataessai\*.xls", vbDirectory)
    'On passe d'un fichier excel a l'autre
    Do While répertoire <> ""
    'import des donnees du fichier excel dans Access
     
     DoCmd.TransferSpreadsheet , acSpreadsheetTypeExcel12, "Ma_Table", répertoire, True
     
          répertoire = Dir
    Loop
    End Sub
    il me dit qu'il n'a pas trouvé mon fichier, que le chemin est inexistant
    merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    Bonjour,

    Un par un les fichiers !

    le *.xls ne fonctionne donc pas avec docmd.transfer

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut
    merci pour la reponse,
    mais j'ai 1500 fichiers, je ne peux pas les faire un par un
    il y a t-il une fonctionnalité pour le réaliser?

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    Très explicite comme message.
    Violation de clef, N° dans un compteur auto qui sont déjà présent par exemple.
    Faut-il vider la table avant l'import ? à voir.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut
    Alors là, je sèche totalement
    j'ai vu ce lien sur internet https://support.microsoft.com/fr-fr/kb/301915/fr
    mais j'ai pas reussi à adapter le probleme

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    Il faut faire une boucle avec Dir() pour les traiter 1 par 1.

    Le premier dir avec le chemin et *.xls
    Le Deuxième dir sans paramètre pour qu'il prenne la suite. cf le F1 pour connaitre le fonctionnement du Dir()
    et la faq
    http://access.developpez.com/faq/?pa...mpteFichierRep

    Pour un exemple proche de ce que tu souhaites faire.

    Pour chaque fichier, dans la boucle, tu lances la commande transfert.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut
    j'ai deja une boucle pour les dir non?
    Do While répertoire <> "" ??
    Si j'enlève DoCmd.TranferSpreadsheet je peux le remplacer par quoi?
    J'ai modifié ma macro en:
    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
    Sub rojh()
     
     
    'Declaration de la valeur répertoire
    Dim répertoire As String
    Dim compteur As Long
    'Recuperation de la liste des fichiers
    répertoire = Dir("C:\Users\9305743N\Desktop\programme\dataessai\*.xls", vbDirectory)
    'On passe d'un fichier excel a l'autre
    Do While répertoire <> ""
    compteur = compteur + 1
    'import des donnees du fichier excel dans Access
     
     DoCmd.TransferSpreadsheet , acSpreadsheetTypeExcel12, "Ma_Table", répertoire, True
     
          répertoire = Dir
    Loop
    End Sub
    mais je ne sais pas quoi faire du DoCmd , ni si ma boucle est celle dont vous parliez? car j'ai fait la meme boucle que la FAQ

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    ta table contient un ou plusieurs qui ont une clef unique. Soit un champ de type NuméroAuto, soit un index à clef unique.
    Lorsque tu importes, les données en provenance d'Excel, on les mêmes valeurs que celles de la table, il t'informe donc qu'il ne peut pas importer.

    On ne peut pas contourner, adapter... soit tu n'importes pas, soit tu importes sans les clefs (donc supprimer les colonnes coté Excel) soit tu purges la table avant l'import.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut
    Je n'ai pas compris :S
    Je ne sais pas ce qu'est une clef

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    oups ! effectivement.

    Le dir() ne donne que le nom de fichier pas le répertoire.

    Il faut donc stocker le répertoire dans une variable et la concaténer au résultat du dir() dans la commande.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  11. #11
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut
    Il faut donc stocker le répertoire dans une variable et la concaténer au résultat du dir() dans la commande. .

    alors j'ai stocké le répertoire dans une variable
    mais pour le contaténer au résultat on fait comment
    est ce que ca au moins c'est correct?
    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
    *
    Sub rojh()
     
     
    'Declaration de la valeur répertoire
    Dim répertoire As String
    Dim compteur As Long
    Dim NomFichier As String
    'Recuperation de la liste des fichiers
    répertoire = Dir("C:\Users\9305743N\Desktop\programme\dataessai\*.xls", vbDirectory)
    'On passe d'un fichier excel a l'autre
    Do While répertoire <> ""
    compteur = compteur + 1
    'import des donnees du fichier excel dans Access
     NomFichier = Dir(répertoire)
     Loop
    End Sub

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    Difficile de se servir d'ACCESS et d'un SGBD en général si tu n'as pas un minimum de base.

    http://fr.wikipedia.org/wiki/Cl%C3%A9_primaire
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  13. #13
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut
    bah mes tables sont uniques
    je vois pas le probleme en fait, mes fichiers excels sont entre la colonne A et la colonne
    j'en mets un en copie pour montrer
    996713_2154915_sam (2).xls

  14. #14
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    absolument pas !
    D'abord un dir("c:\...\*.dfd") pour récupérer le premier nom de fichier puis un Dir() pour récupérer les noms de fichiers suivant.

    Fait F1 sur le Dir() pour voir comment on l'utilise.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  15. #15
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut
    F1 ne marche pas chez moi, il me dit qu'il n'a rien trouvé

  16. #16
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut
    Je m'excuse je n'ai jamais codé avec Access

  17. #17
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut
    j'ai seulement codé en VBA pour excel (un peu) et les fonctions ne sont pas exactement les memes
    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
    Sub rojh()
     
     
    'Declaration de la valeur répertoire
    Dim répertoire As String
    Dim compteur As Long
    Dim NomFichier As String
    'Recuperation de la liste des fichiers
    répertoire = Dir("C:\Users\9305743N\Desktop\programme\dataessai\*.dfd")
    'On passe d'un fichier excel a l'autre
    Do While répertoire <> ""
    compteur = compteur + 1
    'import des donnees du fichier excel dans Access
     NomFichier = Dir()
     
    Loop
    End Sub
    ceci n'est toujours pas correct, mais je vois pas comment écrire le deuxieme dir , j'ai cherché sur internet aussi mais aucune information m'a aidé

  18. #18
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    tu as celle-là : PK_D_LRBG ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  19. #19
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 129
    Par défaut
    Peut-être la colonne G (PK_D_LRBG) PK pourrait indiqué Primary Key (clef primaire)
    A vérifier dans la structure de ta table comment cette colonne est réglée et surtout si N° existe. Si c'est la cas ne cherche pas plus loin.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  20. #20
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 175
    Par défaut
    alors ma table est comme suit
    j'ai mis les titres des colonnes car sinon la matrice me disait " il manque date" il manque " LRBG" etc
    mais N° ? le numéro de la ligne ?
    ca je n'ai pas en effet

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/06/2014, 19h50
  2. [AC-2000] VBA, importation particulière fichier Excel vers une table access
    Par ElCyril dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/12/2010, 01h05
  3. Réponses: 3
    Dernier message: 20/08/2010, 21h48
  4. Réponses: 3
    Dernier message: 20/04/2010, 09h31
  5. Réponses: 5
    Dernier message: 17/01/2009, 15h04

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