OVH Cloud OVH Cloud

Export de longueur fixe en VBA

4 réponses
Avatar
Isa
Bonjour,

J'ai une BDD Access et je dois exporter des données dans un fichier de
longueur fixe.
Le fichier en sortie doit avoir un format un peu spécial comme suit (je ne
peux pas utiliser les exports automatiques d'Access) :

1ère ligne :
Position 1....3..............23........
10NOM PRENOM

2ème ligne :
Position 1....3.........8
20QUANTITE MONTANT

Mon fichier sera donc ainsi :
10DUPONT Jean...
201000 500.00...
10MARTIN Pierre...
20300 250.00...
etc...

Je veux donc créer un fichier de données et le remplir champ par champ à la
bonne position.
Je voudrais savoir comment via VBA je peux écrire dans un fichier à une
position précise ?
Avez-vous des exemples ?

D'avance merci pour vos réponses.

Isa.

4 réponses

Avatar
Raymond [mvp]
C'est le même problème que le message de 10:21 ?

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


"Isa" a écrit dans le message de news:

Bonjour,

J'ai une BDD Access et je dois exporter des données dans un fichier de
longueur fixe.
Le fichier en sortie doit avoir un format un peu spécial comme suit (je ne
peux pas utiliser les exports automatiques d'Access) :

1ère ligne :
Position 1....3..............23........
10NOM PRENOM

2ème ligne :
Position 1....3.........8
20QUANTITE MONTANT

Mon fichier sera donc ainsi :
10DUPONT Jean...
201000 500.00...
10MARTIN Pierre...
20300 250.00...
etc...

Je veux donc créer un fichier de données et le remplir champ par champ à
la
bonne position.
Je voudrais savoir comment via VBA je peux écrire dans un fichier à une
position précise ?
Avez-vous des exemples ?

D'avance merci pour vos réponses.

Isa.


Avatar
Isa
Disons que c'est dans la continuité de mon pb de ce matin mais je me suis
rendue compte que je ne peux pas faire mon export avec la commande
TransferTxt.
Il faut que je fasse tout à la main, que j'ouvre un fichier, que je mette
tel champ à tel position et ainsi de suite... et ensuite que je ferme mon
fichier.

Pour ce faire, je souhaiterais savoir comment on fait pour écrire dans un
fichier à telle position.
J'ai bien trouvé l'instruction Print mais je ne peux apparemment pas lui
passer la position et la longueur du champ.

D'avance merci de ta réponse.

Isa.




"Raymond [mvp]" wrote:

C'est le même problème que le message de 10:21 ?

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


"Isa" a écrit dans le message de news:

Bonjour,

J'ai une BDD Access et je dois exporter des données dans un fichier de
longueur fixe.
Le fichier en sortie doit avoir un format un peu spécial comme suit (je ne
peux pas utiliser les exports automatiques d'Access) :

1ère ligne :
Position 1....3..............23........
10NOM PRENOM

2ème ligne :
Position 1....3.........8
20QUANTITE MONTANT

Mon fichier sera donc ainsi :
10DUPONT Jean...
201000 500.00...
10MARTIN Pierre...
20300 250.00...
etc...

Je veux donc créer un fichier de données et le remplir champ par champ à
la
bonne position.
Je voudrais savoir comment via VBA je peux écrire dans un fichier à une
position précise ?
Avez-vous des exemples ?

D'avance merci pour vos réponses.

Isa.







Avatar
Raymond [mvp]
Il doit être possible de créer une table temporaire avec des champs de
longueur déterminée dont un champ au milieu dans le quel tu mets la valeur
vbCRLf qui fera le saut de ligne entre le prénom et l'autre ligne et faire
un export standard.

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


"Isa" a écrit dans le message de news:

Disons que c'est dans la continuité de mon pb de ce matin mais je me suis
rendue compte que je ne peux pas faire mon export avec la commande
TransferTxt.
Il faut que je fasse tout à la main, que j'ouvre un fichier, que je mette
tel champ à tel position et ainsi de suite... et ensuite que je ferme mon
fichier.

Pour ce faire, je souhaiterais savoir comment on fait pour écrire dans un
fichier à telle position.
J'ai bien trouvé l'instruction Print mais je ne peux apparemment pas lui
passer la position et la longueur du champ.

D'avance merci de ta réponse.

Isa.


Avatar
G Roydor
Bonsoir,

pour les fichiers : utiliser open, print , et enfin close

pour la mise en forme il faut voir les instructions de traitement de
caratères :

space pour ajouter des espaces à une variable (concaténation)
left pour calibrer les variables
et l'opéateur de concaténation pour juxtaposer vos variables

GR

Isa a écrit:
Disons que c'est dans la continuité de mon pb de ce matin mais je me suis
rendue compte que je ne peux pas faire mon export avec la commande
TransferTxt.
Il faut que je fasse tout à la main, que j'ouvre un fichier, que je mette
tel champ à tel position et ainsi de suite... et ensuite que je ferme mon
fichier.

Pour ce faire, je souhaiterais savoir comment on fait pour écrire dans un
fichier à telle position.
J'ai bien trouvé l'instruction Print mais je ne peux apparemment pas lui
passer la position et la longueur du champ.

D'avance merci de ta réponse.

Isa.




"Raymond [mvp]" wrote:


C'est le même problème que le message de 10:21 ?

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


"Isa" a écrit dans le message de news:


Bonjour,

J'ai une BDD Access et je dois exporter des données dans un fichier de
longueur fixe.
Le fichier en sortie doit avoir un format un peu spécial comme suit (je ne
peux pas utiliser les exports automatiques d'Access) :

1ère ligne :
Position 1....3..............23........
10NOM PRENOM

2ème ligne :
Position 1....3.........8
20QUANTITE MONTANT

Mon fichier sera donc ainsi :
10DUPONT Jean...
201000 500.00...
10MARTIN Pierre...
20300 250.00...
etc...

Je veux donc créer un fichier de données et le remplir champ par champ à
la
bonne position.
Je voudrais savoir comment via VBA je peux écrire dans un fichier à une
position précise ?
Avez-vous des exemples ?

D'avance merci pour vos réponses.

Isa.