Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2011, 17h35   #1
Invité de passage
 
Inscription : février 2011
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 29
Points : 3
Points : 3
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
Type de fichier : txt sample.TXT (2,6 Ko, 15 affichages)
jobe3141 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 21h15   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 462
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 462
Points : 7 539
Points : 7 539
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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 05h28   #3
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 968
Points : 30 968
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 10h19   #4
Invité de passage
 
Inscription : février 2011
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 29
Points : 3
Points : 3
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
jobe3141 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 19h22   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 462
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 462
Points : 7 539
Points : 7 539
Voici un bout de code pour lire séquentiellement un fichier.

Code :
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 :
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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 11h16   #6
Invité de passage
 
Inscription : février 2011
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 29
Points : 3
Points : 3
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+
jobe3141 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 19h05   #7
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 462
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 462
Points : 7 539
Points : 7 539
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 :
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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 17h14   #8
Invité de passage
 
Inscription : février 2011
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 29
Points : 3
Points : 3
Merci à toi Marot_r. Grace à ton aide j'ai pu m'en sortir tant bien que mal.
jobe3141 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h56.


 
 
 
 
Partenaires

Hébergement Web