ACCESS 97 - VBA - Fonction DoCmd.TransferText ou "comment importer un TXT sous A

-
Messages postés
70
Date d'inscription
mercredi 21 août 2002
Statut
Membre
Dernière intervention
22 février 2008
-
Bonjour,

J'en appelle à l'entraide des dévellopeurs pour me sauver car là je commence à craquer.

Mon problème est le suivant. Je suis en train de dévellopper une petite appli sous Access 97 pour un client.

Je dois importer des données stockées d'une base (dans un fichier *.txt délimité pas des "Tab") dans une table de ma base.

J'ai donc trouvé la fonction DoCmd.TransfertText

Mais je n'arrive jamais à la faire fonctionner :(

Ma syntaxe :

DoCmd.TransferText , , "Table6", "d:\Seb\toto.txt"

Et mon message d'erreur :

Erreur d'execution 2391:
Le champ 'F1' n'existe pas dans la table destination 'Table6'. Microsoft Access est dans l'impossibilité d'effectuer l'ajout. La table de destination dont contenir les mêmes champs que celle de laquelle vous êtes en train d'ajouter

Ma table est un table test avec cinq colonnes (A B C D E) et mon fichier TXT est 5 lignes de cinq colonnes delimite par des Tab.

J'ai fait de multiples tests. En prenant les premieres lignes commes titres ou non, en testant avec une seule colonne, avec un seul champ (!) ...

Et je tombe toujours sur ce type de message :( :( :(

Si quelqu'un a la solution, HELLLLP ME ;)

Ou si eventuellement vous avez une autre solution pour importer ce fichier TXT dans ma base, je suis preneur.

De plus, si quelqu'un pourrais me dire comment faire sous Access97, supprimez deux lignes d'un fichier TXT, ce serais vraiment sympa :)

En tout cas Merci d'avance à tous et longue vie à VbFrance.com, un site Monstre sur VB 8) 8) 8)

Seb - webmaster@Livry-Gargan.com

3 réponses

Il y a un autre moyen que vous pourriez utiliser pour faire ce transfert.

Vous pourriez utiliser les sytems de fichier, en jouant sur les longueurs (len, ....).

Utiliser cela avec une boucle pour traverser tout votre documents.

J'essayerai de vous envoyer un exemple de code ce week end.
Messages postés
4
Date d'inscription
jeudi 14 mars 2002
Statut
Membre
Dernière intervention
17 mars 2005

Salut !

Moi je me suis débrouillé avec le code suivant :

DoCmd.TransferText acImportDelim, "SPECIF", "tableImport", "C:\Mes Documents\Monfichier.txt", False

SPECIF correspond à un fichier de spécifications d'import de données .txt.

Tu vas dans le menu fichier/Données externes/Importer..., (en gros tu commences l'import "à la main"), tu sélectionnes le fichier voulu, tu fais importer puis :

choix 'Délimité', suivant, Tabulation et Premiere ligne contient les noms de champs (si tu veux), suivant, Dans une nouvelle table, suivant, Options des champs (tu fais ce que tu veux), suivant, clé primaire (ce que tu veux), suivant, Importer vers la table (ce que tu veux également), et là....

tu cliques sur Avancé... en bas à gauche de la boîte. Là t'arrives à une fenêtre nommée "NomDeTaTable Spécification d'importation".

Tu choisis tous tes paramètres adéquats à la forme de ton fichier texte ; exemple :
Délimité {tub}, Origine Fichier : Windows ANSI, Ordre de date JMA, Délimiteur de date /, Délimiteur d'heure :, - en fait ce qui te convient - et tu fais enregistrer. Tu nommes ta spécification SPECIF. Puis Ok. Puis Annuler sur la fenêtre précédente.

Dans ton code, tu fais appel à cette spécification d'import - comme décrit au dessus - et normalement ça marche.

Si ça marche pas ça vient sûrement de cette spécif. Donc refais la manip en changeant des paramètres.
Messages postés
70
Date d'inscription
mercredi 21 août 2002
Statut
Membre
Dernière intervention
22 février 2008

Merci MrT, ton post m'a bien aidé.
Vive VBFRANCE !!!!
gilardh