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 :

importation de données fichier texte [AC-2016]


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Cost Controller
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Cost Controller
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut importation de données fichier texte
    Bonjour,

    trois semaines que je cherche et que je ne trouve pas.
    quand je créé la table de données à partir du fichier texte, toute l'importation se déroule normalement, et les données ont le bon format

    lorsque je vide la table pour faire une importation à partir de données externes, j'ai deux anomalies sur le second champ qui devrait être du texte :
    1) les zéros devant le premier chiffre (00080507700) disparaissent,
    2) dès que la longueur du 'nombre' (05040234260) change, j'ai des anomalies d'importation et le champ est vide

    j'ai parcouru de nombreux forums à la recherche de la résolution de cette anomalie sans succès
    Je joins le fichier texte et un essai de base

    si vous avez une solution, ce n'est pas une épine du pied que vous me retirerez, mais un poutre

    par avance, merci
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 256
    Points
    34 256
    Par défaut
    Salut,

    impossible pour moi de telecharger des fichiers zip.

    Peux tu nous dire si le type de ton champ est bien de type texte ?

    Autre approche, simplement supprimer la table plutot que de la vider
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Cost Controller
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Cost Controller
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    merci de votre réponse

    mon champ est bien de type texte comme dans la base donnée en ZIP ...
    j'ai essayé de réduire le fichier d'import pour qu'il passe sans être zippé et inséré une image de la structure de la table

    j'ai également essayé de supprimer la table, et de la recréer, mais il y a des requêtes sur cette table, vue qu'elle est la table master de ce que je dois développer (dans l'exemple, il n'y a que quelques lignes, dans la réalité à fin février, il y a 1.509.765 enregistrements ... donc plus gérable sous Excel)

    avec mes collègues, nous n'arrivons pas à comprendre pourquoi, lorsque le champ est déclaré comme champ texte dans Access il ne l'interprète pas comme tel au rechargement de la table

    par avance, merci
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 256
    Points
    34 256
    Par défaut
    Solution qui me vient en tete :
    - tu gardes ta table principale qui sera videe le cas echeant
    - tu crees a la volee ta table d'import que tu detruis a la fin ou au debut de chaque import
    - tu fais un insert into table_finale from table_tempo
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    Par défaut, lors d'une importation, Access considère qu'un champ ne contenant que des chiffres est de type numérique, peu importe la table de destination :
    Nom : Format_Import.JPG
Affichages : 502
Taille : 104,7 Ko

    c'est pour cela qu'il faut changer manuellement le type de données :
    Nom : Changer_type.JPG
Affichages : 427
Taille : 24,2 Ko

    De plus il est possible d'enregistrer un format d'importation si cela s'avère nécessaire pour une utilisation fréquente (bouton Avancé)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Cost Controller
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Cost Controller
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonsoir,

    merci à vous pour vos réponses
    alors dans l'ordre

    1) un grand merci à Jean-Philippe : en effet, même si cette solution n'est pas très académique, elle permet de récupérer les données dans le format désiré sans anomalie d'importation. Par contre je n'arrive pas à comprendre pourquoi lorsque qu'un champ est déclaré en texte dans la structure de la table, Access semble ne pas tenir compte de cette information et cherche à transformer ce champ qui ne contient que des numéros en numérique, en supprimant au passage les zéros en début de chaine (bizarrerie Microsoft sans doute)

    2) Tee : les champs affectés par cette anomalie sont bien de nature texte court (voir image structure de la table ci-avant). Lors de l'importation en création de table, aucune anomalie. Par contre Access est incapable de vider et recharger de manière correcte cette table sans une nouvelle création (données externes/fichiers texte/ajouter une copie des enregistrement à la table)

    pour le moment, nous allons fonctionner avec la solution de Jean-Philippe, en espérant que quelqu'un connaisse une solution plus académique, parce que ce genre de manipulation sur des fichiers qui avoisineront les deux millions de ligne à la fin de l'année prennent quand même un peu plus de temps qu'un importation directe

    malgré tout, encore merci à vous, nous allons pouvoir avancer

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    en espérant que quelqu'un connaisse une solution plus académique, parce que ce genre de manipulation sur des fichiers qui avoisineront les deux millions de ligne à la fin de l'année prennent quand même un peu plus de temps qu'un importation directe
    Par contre je n'arrive pas à comprendre pourquoi lorsque qu'un champ est déclaré en texte dans la structure de la table, Access semble ne pas tenir compte de cette information et cherche à transformer ce champ qui ne contient que des numéros en numérique, en supprimant au passage les zéros en début de chaine (bizarrerie Microsoft sans doute)
    Comme je l'ai dit précédemment, il faut forcer le type de données en Texte pour ne pas avoir de problème avec des champs ne contenant que des chiffres et il est possible de sauvegarder le format pour une utilisation ultérieure.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Cost Controller
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Cost Controller
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    Comme je l'ai dit précédemment, il faut forcer le type de données en Texte pour ne pas avoir de problème avec des champs ne contenant que des chiffres et il est possible de sauvegarder le format pour une utilisation ultérieure.
    c'est bien ce que j'ai fait (voir la structure de ma table de données dans l'image écran jointe), ou alors je ne comprends pas ce que tu veux dire
    les deux champs concernés sont bien de type texte court :
    1) PART_NUMBER_FATHER
    2) PART_NUMBER_SON
    mais quand je fais la MàJ de la table, il ne les lit pas comme du texte (fonctionne à la création, pas à la mise à jour)
    Images attachées Images attachées  

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Je ne pense pourtant pas que ce que je dis est incompréhensible mais je le répète encore une fois : peu importe le type de données de la table de DESTINATION, c'est sur le format de données à importer (le fichier texte) qu'il faut agir par le biais des paramètres du format d'importation :

    Nom : Format_Import.JPG
Affichages : 465
Taille : 104,7 Ko

    il faut indiquer à Access que ce n'est pas du numérique mais du Texte :

    Nom : Changer_type.JPG
Affichages : 420
Taille : 24,2 Ko

    il faut donc remplacer Entier long par Texte Court pour éviter ces erreurs d'importation. C'est d'ailleurs ce que j'ai fait avec la base et le fichier joint que tu as posté la table s'appelle SCENARIO2 :
    Database24.zip
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Cost Controller
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Cost Controller
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    c'est bien ce que je fait à la première importation lorsque que je créé la table. le problème n'est pas à la création, mais à la réutilisation de cette table lors de la mise à jour
    tous les mois, je dois rafraichir cette table (vider et remplacer) et c'est lors de cette opération que cela ne fonctionne plus.
    lorsque je cherche à importer dans la table par le biais de l'importation de données externes (soit lors de la première fois, soit avec la procédure enregistrée) cela ne fonctionne plus

    d'où la solution de Jean Philippe qui elle fonctionne : recréer la table à chaque fois (plus de problème de données) et transfert des données dans la table de l'application

    en tout cas, merci à vous deux pour le temps que vous avez consacré à la résolution de mon problème
    bonne journée

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonsoir,
    c'est bien ce que je fait à la première importation lorsque que je créé la table. le problème n'est pas à la création, mais à la réutilisation de cette table lors de la mise à jour
    c'est pour cela qu'il faut créer un format d'importation avec le bon typage de données et le sauvegarder pour pouvoir l'utiliser parce que dans le cas ou on veut insérer dans une table existante, Access ne propose pas à nouveau le formatage des données. Pour ce faire, il faudra importer dans une nouvelle table (temporaire, qui sera à supprimer après cette manipulation) afin d'accéder à l'écran ci-dessous après avoir cliqué sur le bouton Avancé :
    Nom : Format_Import.JPG
Affichages : 510
Taille : 109,9 Ko
    Ensuite, après avoir modifié le type de données des champs, il faut appuyer sur Enregistrer pour sauvegarder le format d'importation.
    Lors de la prochaine utilisation, il faut choisir importer dans la table existante (la bonne cette fois-ci), ensuite de cliquer sur le bouton Avancé, puis de cliquer sur Paramètres pour charger le format d'import enregistré (bouton Ouvrir, puis OK pour valider)
    Nom : Format_Import2.JPG
Affichages : 502
Taille : 96,9 Ko
    Il est possible d'utiliser un format d'importation avec un scénario d'importation enregistrée ou avec VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferText acImportDelim, "SCENARIO Spécification d'importation", "SCENARIO", "C:\SCENARIO.txt", True
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

Discussions similaires

  1. [Débutant] Lot DTS et importation d'un fichier texte
    Par Sebcaen dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 19/10/2006, 11h53
  2. [VBA-E] Récupération données fichier texte
    Par Theo28fr dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/07/2006, 08h08
  3. Restructurer l'import d'un fichier texte
    Par Deejoh dans le forum Access
    Réponses: 3
    Dernier message: 20/04/2006, 22h20
  4. [VBA-E] Tableau de données <=> Fichier Texte
    Par P50 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2005, 16h02
  5. importation d'un fichier texte vers excel
    Par darkpocket dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/01/2005, 11h47

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