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 :

Problème fonction TransferSpreadsheet [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 92
    Points : 90
    Points
    90
    Par défaut Problème fonction TransferSpreadsheet
    Bonjour à tous et à toutes,
    J’ai crée un bouton sur Access qui me permet d’insérer des lignes Excel dans une table (Tb_TURNOVER).
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub importationexcelturnover_Click()
     
    On Error GoTo ImportXL_B_Error
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Tb_TURNOVER", "T:\...\TURNOVER.xls", True, "turnover_export!"
        MsgBox "IMPORTATION  DU FICHIER TURNOVER.XLS REUSSIE", vbInformation
    On Error GoTo 0
    ImportXL_B_Exit:
    Exit Sub
    ImportXL_B_Error:
        MsgBox "Il y a eu un problème lors de l'importation !", vbExclamation
    Resume ImportXL_B_Exit
     
    End Sub
    Seulement j’ai un problème. Si le fichier Excel comprend des lignes vides (résultat de nombreux copié/collé mais pas du même nombre de lignes) , la macro Access ne fonctionne plus et j’ai mon message d’erreur "Il y a eu un problème lors de l'importation !".
    Je ne sais pas si je peux mettre un bout de code dans la macro pour éviter que sa me prenne en compte toute la feuille "turnover_export" mais seulement les cellules remplies.

    J'ai voulue spécifier la plage de cellules que j'importe mais cette plage est variable.

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Humm, dans l'absolu, non, vu que tu ne peux pas savoir comment est plus ou moins bien remplie la feuille...

    Bref, séquentiellement, il est plutôt conseillé, non pas d'importer mais de lier la feuille... Ensuite, baser une requête sur cette feuille/table et construire une table depuis cette requête en posant des conditions de non-nullité.

    Cela devrait résoudre la problématique rencontrée...

    Argy

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 92
    Points : 90
    Points
    90
    Par défaut
    Merci pour ta réponse rapide
    Pour lier une feuille à une table existe t il une FAQ ou je puisse suivre étape par étape car je suis encore une novice dans Access...

  4. #4
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 92
    Points : 90
    Points
    90
    Par défaut
    Je reviens vers toi. J'ai fais quelques recherches sur les liens entre fichier excel et table access.
    Je sais pas si j'ai bien compris mais à chaque mise à jour de la table, les nouvelles donnée du fichier Excel viennent écraser les anciennes données de la table Access ?
    Si c'est bien cela je ne souhaite pas écraser les anciennes données mais les conserver dans la table.

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bien cela n'a pas d'importance, c'est toi qui gère...
    Le fait de lier la table te permet de disposer des éléments de la feuille comme dans une table.

    Si la table existe déjà, ce qui semble être le cas, tu fais un INSERT INTO traduit par une Requête Ajout.

    Argy

  6. #6
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 92
    Points : 90
    Points
    90
    Par défaut
    ok merci à toi...

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut probleme avec TransferSpreadsheet
    Bonjour j'ai des comportements aléatoire avec la fonction TransferSpreadsheet lors de l'importation de fichier excel vers access.
    ainsi le fichier excel joint comportant une seule feuille ayant qu'une seule colonne : classeur1.xls de 26 lignes s'importe sans erreur. le même classeur2.xls de 27 lignes génére une erreur d'importation ??!!
    Fichiers attachés Fichiers attachés

  8. #8
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Ce comportement est dû au fait que l'analyse du type de colonne est établi sur un nombre de l'ordre de la vingtaine. Je ne me rappelle plus le nombre exact mais je crois que c'est 25.

    Donc en gros, le type de la colonne est défini selon les x première valeurs lues.
    Comme vos classeurs Excel contiennent d'abord un nombre, la méthode considère que le type du champ recepteur sera numérique mais il rencontre alors une valeur texte donc la table des erreurs se créée et les données non numérique ne sont pas importées. Ce comportement est inhérent à la méthode et est aussi valable pour les dates.

    • Solution 1 : Mettre toutes les colonnes contenant des valeurs mixtes en Texte (@).
    • Solution 2 : Importer dans une table existante dont les champs cibles sont susceptibles de contenir des valeurs mixtes sont définis en texte.


    Argy

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je suis également intéressé par cette méthode de Transferspreadsheet.

    Du coup, si j'ai bien compris il n'est pas possible de mettre une condition sur la méthode transferSpreadsheet ?

    Comme par exemple ne pas importer les lignes qui contiennent des 0 ?

    Merci d'avance

  10. #10
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Oui en effet, tu as bien compris.
    Si tu ne veux exporter que des lignes qui ne contiennent que des valeurs bien précises, il te faut faire une requête d'abord, éventuellement faire en sorte que cette requête créée une table, et enfin exporter le tout vers Excel.

    Argy

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

Discussions similaires

  1. Problème : Fonctions et commande Execute
    Par bubi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/11/2005, 11h01
  2. Problème fonction SDL
    Par seeme dans le forum SDL
    Réponses: 2
    Dernier message: 06/11/2005, 20h22
  3. Problème fonction PL/SQL
    Par SSJ17Vegeta dans le forum PL/SQL
    Réponses: 2
    Dernier message: 29/10/2005, 21h14
  4. Problème fonction et trigger sous 7.2
    Par anoukhan dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/06/2005, 22h53
  5. Réponses: 2
    Dernier message: 20/08/2004, 17h10

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