Importation sous ACCESS fichier 'txt' à modif

Fermé
Signaler
Messages postés
11
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
18 octobre 2010
-
Messages postés
11
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
18 octobre 2010
-
Bonjour à tous,

Voila, je suis très très embêté et réclame votre aide, alors merci d'avance.

Dans une 'Table' Access, j'ai besoin d' importer des fichier *.txt, jusque là pas de problème, sauf que :

Les fichier *txt ne sont pas exploitable tel quels :( et se trouve exactement sous cette forme :
(Sur cet exemple il y a 24 enregistrements, mais il peux y en avoir moins ou beaucoup plus !)


H**** HEPRG=Prod Dat PAGE:
H**** 01-09-200809:59:49 1
P***** T******

Production Data Extraction


Period, From :01-07-2008 Period, To :31-07-2008
MTO Name, From :UMK425E1 UEET MTO Name, To :UMK425E1 UEET
Engine Type : Frame N°, From : 0 Engine N°, To :9883781
Frame Type : Engine N°, From : 26553 Frame N°, To :9951141


Sort by : Date



N°|MTO Code|MTO Name|Assembly Date|Engine Type|Engine N°|Frame Type|Frame N°|Code Couleur
1|1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429588|HAJF |1000006|R280
2|1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429590|HAJF |1000009|R280
3|1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429591|HAJF |1000010|R280
4|1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429597|HAJF |1000004|R280
5|1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429600|HAJF |1000001|R280
6|1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429594|HAJF |1000008|R280
7|1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429593|HAJF |1000003|R280
8|1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429603|HAJF |1000005|R280
9|1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429606|HAJF |1000007|R280
10|1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429604|HAJF |1000002|R280
11|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404697|HAJF |1000020|R280
12|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404719|HAJF |1000022|R280
13|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404720|HAJF |1000018|R280
14|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404727|HAJF |1000011|R280
15|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404731|HAJF |1000021|R280
16|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404737|HAJF |1000024|R280
17|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404753|HAJF |1000013|R280
18|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404757|HAJF |1000017|R280
19|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404764|HAJF |1000019|R280
20|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404770|HAJF |1000023|R280
21|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404776|HAJF |1000016|R280
22|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404777|HAJF |1000015|R280
23|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404779|HAJF |1000012|R280
24|1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404780|HAJF |1000014|R280
TOTAL : 24
***End of report***

Et que pour être correctement 'importable' et exploitable dans ma base de données, il devrait être comme ceci :
Les | indiquant les changements de colonne (en supprimant bien entendu les espaces avant ou après).

1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429588|HAJF |1000006|R280
1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429590|HAJF |1000009|R280
1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429591|HAJF |1000010|R280
1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429597|HAJF |1000004|R280
1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429600|HAJF |1000001|R280
1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429594|HAJF |1000008|R280
1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429593|HAJF |1000003|R280
1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429603|HAJF |1000005|R280
1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429606|HAJF |1000007|R280
1AVL6 P300 |UMK425E1 UEET |08-07-2008|GCALT |1429604|HAJF |1000002|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404697|HAJF |1000020|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404719|HAJF |1000022|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404720|HAJF |1000018|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404727|HAJF |1000011|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404731|HAJF |1000021|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404737|HAJF |1000024|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404753|HAJF |1000013|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404757|HAJF |1000017|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404764|HAJF |1000019|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404770|HAJF |1000023|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404776|HAJF |1000016|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404777|HAJF |1000015|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404779|HAJF |1000012|R280
1AVL6 P300 |UMK425E1 UEET |10-07-2008|GCALT |1404780|HAJF |1000014|R280

Je voudrais donc une macro, sous Access, qui m'importe mon fichier *.txt en le modifiant automatiquement

Je vous aurez bien fais suivre un fichier *.txt 'brut', mais je ne vois pas comment fair via ce forum :??:

D'avance mille mercis à vous tous pour votre aide !!!

Amicalement

Weider.

4 réponses

Messages postés
1723
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
4 décembre 2021
540
Tu peux envoyer un fichier avec cjoint.com et coller le lien dans un post.
Messages postés
11
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Bonjour,

Merci pour m'avoir donné la marche à suivre concernant mon fichier joint !

Voici donc, en exemple, le type de fichier que j'aurais à importer dans ma base.

https://www.cjoint.com/?jeisjFftbY
Messages postés
1723
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
4 décembre 2021
540
Bon, ça va avoir l'air de bidouillage - c'en est peut-être, mais 1) ça fonctionne et 2) je ne vois pas d'autre solution:

Après l'importation du texte brut dans la table (qui s'appelle Honda), on supprime les lignes parasites (Celles qui sont vides, commencent par 5 espaces, par un E, un N, un T etc)

DELETE HONDA.Champ1
FROM HONDA
WHERE (((HONDA.Champ1) Like " *" Or (HONDA.Champ1) Like "H*" Or (HONDA.Champ1) Like "T*" Or (HONDA.Champ1) Like "N*" Or (HONDA.Champ1) Is Null Or (HONDA.Champ1) Like " F*" Or (HONDA.Champ1) Like " E*"));

Ensuite, on "range" les données dans une autre table, que j'appelle Données:
INSERT INTO Données ( Champ1, Champ2, Champ3, Champ4 )
SELECT Mid([Champ1],8,10) AS Expr1, Mid([Champ1],19,15) AS Expr2, Mid([Champ1],38,10) AS Expr3, Mid([Champ1],49,5) AS Expr4
FROM HONDA;

Je ne l'ai pas fait pour tous les champs, seulement les 4 premiers pour que tu voies le principe. La fonction Mid (ExtracChaîne en français) permet d'extraire des caractères d'une chaîne en donnant le numéro de départ et la longueur.

Donc ensuite tu lances l'exécution des deux SQL à la suite de l'importation dans ton module, et le tour est joué...
Messages postés
11
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Bonsoir LatelyGeek,

Merci bien pour votre aide, je vais essayer de me débrouiller, grâce à vous !

Amicalement

Weider.