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 :

Extraction d'un .txt et Insertion dans une table


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Extraction d'un .txt et Insertion dans une table
    Salut à tous

    Voilà, j'aurais besoin d'extraire des données d'un fichier texte et de les insérer dans une table Access. Les données ont toutes le mm format qui est le suivant : "CI-", puis 5 chiffres. Existe-t-il une fonction qui recherche un format spécifique dans une zone de texte?

    Quelle est la meilleure méthode?
    1) Faire un "TransferText" sur la table et la traiter ensuite avec des instr et mid, ou avec une autre fonction qui sache rechercher le format spécifique directement (je ne la connais pas si elle existe).
    2) Ou rechercher les données directement sur le .txt. Doit-on passer par un objet dans ces cas là?

    La 2 me parait plus pertinente. Mais je ne sais pas comment récupérer tout le .txt (GetObject, Open?)!

    Merci de votre aide
    Ca doit etre un pb tout simple mais bon...

    ++ PoP

  2. #2
    jdu
    jdu est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    bonjour,
    Les donnees dans ton fichier text comment sont elles organisees? Si elles ne sont pas trop en vrac tu peux essayer la manip suivante

    1- ouvre ton ficher sous word, Transforme ton texte tableau avec les delimiteurs de champs qui sont dans ton fichier texte
    2- copie ton tableau dans excell, fait un tri dans ta colonne CI- XXXX, supprime le reste, Enregistre ton fichier
    3- Ouvre ta base access importe tes donnees à partir de ton fichier Excel,
    Le tour est joue. Si ensuite tu ne veux qu'une partie de ces donnees, utlise un requete avec right, left etc..

    Bon courage
    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Non non en fait, je voudrais que tout soit fait dans Access (pas d'intermédiaire avec Excel par ex.) et que tout soit automatique. Genre tu sélectionnes le .txt, tu le traites pour récupérer les infos qui t'intéressent (tjrs au mm format) et tu remplis une table.

    Si j'utilisais Excel, çà serait très simple effectivement. Je récupère le .txt, je bute les colonnes et lignes qui m'embetent et après j'exporte vers Access. Mais çà manque de transparence pour l'utilisateur tout çà

  4. #4
    jfc
    Invité(e)
    Par défaut Importation
    Salut,

    Tu crée un format d'importation de type TXT et ensuite tu utilises la fonction TransferText.

    Comment créer ton format d'importation

    - fichier - données externe - Importer
    - tu choisis ton fichier txt
    - clic sur le bouton "Avancé..."
    - type de donnée délimité ou fixe, à voir
    ici tu travailles quasiment comme sous Excel
    tu peux distribuer les données de chaque ligne dans différents champs
    - tu enregistre ton format d'importation et c'est tout.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Pas mal j'avais jms essayé avant. Mais le format du .txt est un peu trop compliqué et je ne peux pas me débrouiller seulement avec un découpage en colonnes.

    J'aurais donc besoin de retrouver des données dans les champs quoi qu'il arrive. Comment faut-il faire pour trouver une valeur avec un format précis sur un enregistrement? On est obligés de passer par SQL ou il y a des commandes VB qui dont la mm chose?

    Merci de votre aide
    ++ PoP

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    j'importe très souvent des fichiers textes compliqués, et là ... je n'ai pas d'autre solution que de coder un parsing maison qui épluche ligne à ligne les données, à grands coups de SELECT CASE ...

    bonne chance ...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Mmmm çà m'a l'air d'etre pas mal çà... Je peux en voir juste un ptit bout de code? Ca m'aiderait vraiment bcp, g déjà perdu trop de tps!

    Merci bcp

  8. #8
    jdu
    jdu est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Ok, je pensais que tu ne voulais importer qu'un seule fois ce fichier.
    Sinon voici un code pris sur
    http://users.skynet.be/accesshome/files.htm#ImportTXT
    qui pourra peut etre resoudre ton pb (je ne l'ai pas teste)

    Importer ligne par ligne un fichier .txt
    Lecture de chaque ligne d'un fichier texte
    et importation dans un champ d'une table.

    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
    Sub ImportTXT()
    Dim txtLine As String
    Dim LeFichier As String
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Dim F As Integer
     
    LeFichier = "c:\chemin\fichier.txt"
     
    Set dbs = CurrentDb
    Set rst = dbs.OpenRecordset("LaTable", dbOpenDynaset)
    F = FreeFile
    Open LeFichier For Input As #F
    Line Input #F, txtLine
    Do While Not EOF(F)
    	Line Input #F, txtLine
    	With rst
    		.AddNew
    		.Fields("LeChamp").Value = txtLine
    		.Update
    	End With
    Loop
    Close #F
    rst.Close
    Set dbs = Nothing
    Set rst = Nothing
    End Sub
    [Balises code obligatoires !!! - cafeine]

    A+

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Oh Le pied!!! Exactement ce qu'il me fallait
    Merci bcp

    ++ PoP

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

Discussions similaires

  1. insertion dans une table en pl/sql
    Par jejam dans le forum PL/SQL
    Réponses: 9
    Dernier message: 24/08/2005, 18h06
  2. [ZEOSLIB] Problème Insertion dans une table
    Par moscovisci dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/06/2005, 12h05
  3. [interbase6]probleme d'insertion dans une table
    Par macadam314 dans le forum Bases de données
    Réponses: 10
    Dernier message: 22/02/2005, 14h21
  4. [Sybase] Temps d'une insertion dans une table
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 14/02/2005, 10h04
  5. Détection insertion dans une Table
    Par abelman dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/07/2004, 14h24

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