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 fichier TEXTE partculier dans ACCESS


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 44
    Points : 19
    Points
    19
    Par défaut Importation fichier TEXTE partculier dans ACCESS
    Bonjour à tous,

    Je me tourne vers vous car je suis complètement perdu. Tous les jours je reçois un fichier texte contenant des tableaux. le fichier texte contient toutes sortes de caracteres spéciaux (* -). Je souhaiterais pouvoir inserer les données dans access pour pouvoir effectuer toutes sortes de retraitements de données issu de ce fichier. Je vous joins un exemple qui je pense sera bcp plus parlant. Pour info, j'ai deja essayé de l'importé via access et via la fonction docmd.. mais le resultat est complétement illisible. alors, quelqu'un aurait-il une solution à me proposer SVP je suis complètement noyé je ne sais meme pas par ou commencer.

    Merci votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 341
    Points : 23 800
    Points
    23 800
    Par défaut
    Que veux-tu lire ?

    Le contenu des colonnes TITRE6, 7, 8 et 9 ?

    Est-ce que tes tableaux ont tous la même structure ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par marot_r Voir le message
    Est-ce que tes tableaux ont tous la même structure ?
    Une remarque très importante de la part de marot_r , car tu ne pourras jamais importé un tableau de cette sorte avec les outils fournis par Access.

    Il faudra réaliser une programmation en VB pour lire le fichier ligne par ligne.

    Philippe

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 44
    Points : 19
    Points
    19
    Par défaut
    Bonjour et merci pour de vous interesser à mon probleme.

    Par apport à la remarque de marot_r je souhaite integrer les titres ainsi que leur contenu dans différentes tables par exemple une table titre et une autre le contenu. En ce qui concerne la structure des tableaux, elles sont identique.
    Je me doute bien qu'il va falloir developper un programme en vba mais je n'en ai que quelques notions.
    Alors merci de bien vouloir m'apporter votre aide pour le developpement:
    - Comment faire pour parcourir le fichier
    - comment preciser de ne pas tenir compte des caractères spéciaux (*, - )
    - Comment faire pour récupérer le "titre C" dans un champ d'une table (voir PJ)
    - Comment gérer les titres qui contiennent des espaces.
    - Comment gérer les espaces entre les champs.
    - Comment faire en sorte que la valeur A soit affectée à "TOTAL1" et "TOTAL2"

    En tout cas merci pour votre aide

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 341
    Points : 23 800
    Points
    23 800
    Par défaut
    Voici un bout de code pour lire séquentiellement un fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim nomFic as string:nomFic="C:\Toto\TonFichier.txt"
    dim numFic as integer:numFic=freefile()
    dim lf as string'Une ligne du fichier
    do while not eof(#numfic)
       line input #numfic, lf 'Lit une ligne du fichier.
    loop
    close #numfic
    Après tu vas devoir tronsconner ta ligne pour en extraire les infos.

    Tu peux utiliser Mid(), Left(), Right() éventuellement aussi Split() pour découper ta chaîne (ici lf) en morceaux significatif.

    Une fois que tu as tous les morceaux tu peux les ajouter à une ou plusieur table.

    exemple d'ajout dans une table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim db as dao.database:set db=currentdb
    dim r as dao.recordset:set r=db.openrecordset("TaTable")'Ouvre la table destinatrice
    r.addnew 'Ajoute un enr vierge
    r![NomTonChamp]=taValeur 'Complète le champ qui t'interresse
    r.update 'Confirme l'ajout de l'enr
    r.close:set r=nothing 'Ferme et libère la mémoire
    db.close:set db=nothing 'Ferme et libère la mémoire
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 44
    Points : 19
    Points
    19
    Par défaut
    Merci pour ces précieuses infos marot_r. J'ai vu sur le net à quoi correspondent les fonctions citées dans ton précedent message mais je ne parvient pas à comprendre comment on fait pour traiter une ligne de bout en bout. Je suis peut être un peu bete mais te serait-il possible de me fournir une exemple de code qui traite au moins une ligne du fichier que j'ai mis en piece jointe.

    En tout cas merci pour ton aide
    A+

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 341
    Points : 23 800
    Points
    23 800
    Par défaut
    D'abors il te faut un moyen pour distinguer tes lignes par exemple ce peut être un simple compteur de ligne ou un masque de correspondance.

    Ensuit il faut que tu décides ce que tu veux en faire, une solution simple mais parfois lourde est d'avoir une variable par élément.

    Comme ton fichier est peu complexe je vais te donner un exemple basée sur sur le 'fichier' suivant :

    ***********
    Nom : Nom_2011-05-09_12-42
    Prénom : Prénom_2011-05-09_12-42
    Adresse : Adresse__2011-05-09_12-42, Ville : Ville_2011-05-09_12-42
    ***********
    Nom : Nom_2011-05-09_12-46
    Prénom : Prénom_2011-05-09_12-46
    123456789_123456789_123456789_123456789_123456789_123456789_
    Adresse : Adresse__2011-05-09_12-46, Ville : Ville_2011-05-09_12-46

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    dim nom as string
    dim prenom as string
    dim adresse as string
    dim ville as string
     
    dim nomFic as string:nomFic="C:\Toto\TonFichier.txt"
    dim numFic as integer:numFic=freefile()
    dim lf as string'Une ligne du fichier
    cim cptLigne as long
     
    do while not eof(#numfic)
       line input #numfic, lf 'Lit une ligne du fichier.
     
       if lf = string(11,"*") then
         'Ceci est un début d'adresse
          cptLigne=1
       end if
     
       select case cptLigne
           case 1
              nom=""
              prenom=""
              adresse=""
              ville=""
     
           case 2
              nom=mid(lf, len("nom : "))
     
           case 3
              prenom=mid(lf, len("prénom : "))
     
           case 4
              Adresse=mid(lf, 10, 24)  'Suppose que l'adresse a toujours 24 carcatères (on pourrait utiliser instr() pour touver la "," et détermier la fin de l'adresse
              Ville = mid(lf, 26)
     
              'Ici le code pour enregistrer les données dans la bd
     
         end select
     
         cptLigne=cptLigne+1
    loop
     
    close #numfic
    Une commande utile est Trim() qui enlève les blanc devant et dérière un texte et évidement toutes les fonctions de conversion de type (CDate, CInt, CDbl, Lng ...)

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 44
    Points : 19
    Points
    19
    Par défaut
    Merci à toi Marot_r. Grace à ton aide j'ai pu m'en sortir tant bien que mal.

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

Discussions similaires

  1. [VBA] Importer fichier texte d'un lien HTML dans ACCESS
    Par VICTOIRE44 dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/12/2006, 10h58
  2. Importer fichier texte dans base Access
    Par Mymi dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/08/2006, 20h21
  3. probleme avec un import fichier texte dans mysql
    Par xodeax dans le forum Requêtes
    Réponses: 2
    Dernier message: 04/07/2006, 13h24
  4. import fichier texte dans table contrainte
    Par philippe281281 dans le forum Outils
    Réponses: 5
    Dernier message: 14/06/2006, 17h01
  5. Import de fichier CSV automatique dans Access
    Par Jmar dans le forum Access
    Réponses: 4
    Dernier message: 20/01/2006, 10h48

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