Access : Importation d'un fichier TXT (pb de conversion)

cs_seb56 Messages postés 5 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 26 mars 2002 - 14 févr. 2002 à 11:59
Makabey Messages postés 152 Date d'inscription mercredi 27 juin 2001 Statut Membre Dernière intervention 11 juillet 2002 - 14 févr. 2002 à 16:11
Bonjour à tous et à toutes,

J'ai un petit problème à soumettre à votre perspicacité, relatif à l'importation d'un fichier TXT dans une base Access.

Alors voila :Alors voila :

Admettons que j'ai un fichier TXT relativement énorme (400 000 lignes environ) qui possède divers types d'informations ( de type Texte et Numérique).

Ce fichier, je veux le faire rentrer dans une base de données Access. Jusque là pas de problèmes : en utilisant l'assistant d'importation, tout se passe bien.

Problème qui se pose à moi et que j'ai cru bon de vous soumettre (attention les yeux) :

Lors de la création de la nouvelle table associée à ce fichier, Access m'informe d'une erreur d'importation : un des champs que j'ai défini (de type numérique et intitulé "Montant") ne contient pas toutes les informations contenues dans le fichier TXT.

La raison, je la connais :

Les données contenues dans le fichier TXT et relatives au champs "Montant" sont dotées d'un artifice un peu gênant : un séparateur de milliers... je m'explique :

- un montant tel que celui-ci 999,00 passe très bien dans la base Access
- un montant supérieur à 1 000,00 disparait dans la base. Le problème réside dans l'espace entre le premier et le second chiffre : Access refuse de le comprendre et ne l'intègre pas.

Début de solution

Un début de solution consiste à passer par Excel afin de supprimer, pour ce champs, le séparateur de milliers

MAIS (nouveau problème) mon fichier est trop énorme pour être absorbé en entier par Excel (qui ne prend au max que 65 000 et quelques lignes)

Voyez vous une solution à ce problème ?

Merci d'avance et à bientôt.

Seb

1 réponse

Makabey Messages postés 152 Date d'inscription mercredi 27 juin 2001 Statut Membre Dernière intervention 11 juillet 2002 1
14 févr. 2002 à 16:11
Si tu connais le moindrement VB, il te suffirait d'ouvrir directement ton fichier source et à l'aide des fonctions Split (pour séparer chaque lignes en un tableau dont chaque élément représenterait logiquement un champs) et Format, de corriger cette lacune; voici comment en pseudo-code je vois la chose:

Ouvrir fichier source en lecture seule
Ouvrir un fichier destination en écriture (question de ne rien perdre ;) )
(Début de boucle jusqu'à fin du fichier source)
Lire une ligne
Séparer par Split (VB6, sinon vois mes source j'ai une fct qui le fait) en un tableau de chaines
Corriger avec Format la bonne donnée
Composer une ligne avec les nouvelles données
Écrire la ligne dans le fichier Destination
(Fin boucle)
Fermer les 2 fichiers
(fin pseudo-code)
Utiliser Access

Aussi simple que cela. Bien sûr idéalement on le ferait de VB directement (la création de la table en Access et le remplissage).
0
Rejoignez-nous