OVH Cloud OVH Cloud

Declaration specification d'import par vba

5 réponses
Avatar
Serge LARNAUDIE
Je fais souvent des imports dans access de fichiers textes, pour un fichier
avec séparateur, je suis arrivé à faire en sorte que quel que soit le
fichier importé, la table est crée avec les noms de champs recupérés dans le
fichier texte... (avec du code du site Access.seneque.free.fr )

Par contre pour un fichier en longueur fixe, j'arrive aprés un open du
fichier texte à récuperer les noms de champs souhaités, et à créer la table
mais pour ensuite pouvoir importer mes données, il faudrait que par le code
VBA je puisse créer une spécification de format d'import car en fait les
noms de champs ne sont pas obligatoirement en tete du fichier texte !

5 réponses

Avatar
Raymond [mvp]
Bonjour.

il faut que tu crées une spécification d'import de façon manuelle, pour
paramétrer le fichier d'import. Ensuite, tu utilises ce fichier dans ta
commande d'import et tu indiques dans le paramètre prévu dans la commande si
le fichier contient les entêtes ou non .

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Serge LARNAUDIE" <serge.larnaudie-wanadoo.fr> a écrit dans le message de
news: 41cae563$0$9558$
Je fais souvent des imports dans access de fichiers textes, pour un
fichier
avec séparateur, je suis arrivé à faire en sorte que quel que soit le
fichier importé, la table est crée avec les noms de champs recupérés dans
le
fichier texte... (avec du code du site Access.seneque.free.fr )

Par contre pour un fichier en longueur fixe, j'arrive aprés un open du
fichier texte à récuperer les noms de champs souhaités, et à créer la
table
mais pour ensuite pouvoir importer mes données, il faudrait que par le
code
VBA je puisse créer une spécification de format d'import car en fait les
noms de champs ne sont pas obligatoirement en tete du fichier texte !




Avatar
Serge LARNAUDIE
Et oui mais justement c'est que je veux importer n'importe quel fichier, qui
aura donc a chaque fois un format different, j'arrive bien a créer la table
avec la bonne longueur de champ, mais ensuite l'import du fichier texte dans
la table ne focntionne pas !
"Raymond [mvp]" a écrit dans le message de
news: uf#
Bonjour.

il faut que tu crées une spécification d'import de façon manuelle, pour
paramétrer le fichier d'import. Ensuite, tu utilises ce fichier dans ta
commande d'import et tu indiques dans le paramètre prévu dans la commande
si

le fichier contient les entêtes ou non .

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Serge LARNAUDIE" <serge.larnaudie-wanadoo.fr> a écrit dans le message de
news: 41cae563$0$9558$
Je fais souvent des imports dans access de fichiers textes, pour un
fichier
avec séparateur, je suis arrivé à faire en sorte que quel que soit le
fichier importé, la table est crée avec les noms de champs recupérés
dans


le
fichier texte... (avec du code du site Access.seneque.free.fr )

Par contre pour un fichier en longueur fixe, j'arrive aprés un open du
fichier texte à récuperer les noms de champs souhaités, et à créer la
table
mais pour ensuite pouvoir importer mes données, il faudrait que par le
code
VBA je puisse créer une spécification de format d'import car en fait les
noms de champs ne sont pas obligatoirement en tete du fichier texte !








Avatar
Raymond [mvp]
Si on considère que chaque fichier peut être différent en formatage, il va
falloir passer par vba avec une lecture ligne à ligne et lire le nombre de
caractères de chaque champ avec la valeur donnée dans une table. cette table
contiendra la description du fichier champ par champ et ton import sera fait
d'après cette table. cette table peut ressembler au fichier spécification
access.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Serge LARNAUDIE" <serge.larnaudie-wanadoo.fr> a écrit dans le message de
news: 41caec02$0$808$
Et oui mais justement c'est que je veux importer n'importe quel fichier,
qui
aura donc a chaque fois un format different, j'arrive bien a créer la
table
avec la bonne longueur de champ, mais ensuite l'import du fichier texte
dans
la table ne focntionne pas !


Avatar
Serge LARNAUDIE
Oui, cette etape, j'y arrive, c'est simplement au moment ou j'importe dans
la table, mais comme je crée ma table avec les noms de champs recupérés dans
le fichier texte, il faut peut être alors que le laisse la table avec les
noms de champs F1, F2, ... ou alors champ1 , champ2... et renommer ensuite
les noms de champs si besoin (et comment renommer d'ailleurs par le code VBA
les champs ?)
Merci
"Raymond [mvp]" a écrit dans le message de
news:
Si on considère que chaque fichier peut être différent en formatage, il va
falloir passer par vba avec une lecture ligne à ligne et lire le nombre de
caractères de chaque champ avec la valeur donnée dans une table. cette
table

contiendra la description du fichier champ par champ et ton import sera
fait

d'après cette table. cette table peut ressembler au fichier spécification
access.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Serge LARNAUDIE" <serge.larnaudie-wanadoo.fr> a écrit dans le message de
news: 41caec02$0$808$
Et oui mais justement c'est que je veux importer n'importe quel fichier,
qui
aura donc a chaque fois un format different, j'arrive bien a créer la
table
avec la bonne longueur de champ, mais ensuite l'import du fichier texte
dans
la table ne focntionne pas !






Avatar
Raymond [mvp]
Dans ta table spécification, tu indiques les noms des champs du fichier
texte( 1er champ de la table specification) pour vérifier s'ils sont
présents dans le fichier c'est tout. Ensuite tu lis un nombre de caractères
(2e champ de la table spécification) que tu places dans le champ réel de la
table ( ce nom est le 3e champ de la table specification).
pour aller plus rapidement, tous les paramètres des champs de la tables
seront placés dans un tableau en mémoire.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Serge LARNAUDIE" <serge.larnaudie-wanadoo.fr> a écrit dans le message de
news: 41caf35d$0$6674$
Oui, cette etape, j'y arrive, c'est simplement au moment ou j'importe dans
la table, mais comme je crée ma table avec les noms de champs recupérés
dans
le fichier texte, il faut peut être alors que le laisse la table avec les
noms de champs F1, F2, ... ou alors champ1 , champ2... et renommer ensuite
les noms de champs si besoin (et comment renommer d'ailleurs par le code
VBA
les champs ?)
Merci