IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Formatage de fichier


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 66
    Points : 42
    Points
    42
    Par défaut Formatage de fichier
    Bonjour à tous, au forum...

    Désolé si ma question n'est pas en rapport avec le forum mais peut-être puis-je trouver une solution ici...

    Voici mon problème :

    J'ai extrait d'une requête des données que je voudrai mettre en forme dans un fichier .txt

    Ce fichier .txt a un format bien définit où toutes les données sont concaténées.

    EX de mon fichier (extraction de ma requête):

    A 5235623 Y LLLL -333,596 96,65
    B 8998785 Y IIII 21,588.22 -66,5

    Ce que je voudrai faire :

    Un fichier .txt où chaque champ est définit par une position et une longueur
    Champ1 : pos 1 longueur: 1 (=A dans mon exemple)
    Champ2 : pos 2 longueur: 7 (=5235623 dans mon exemple)
    etc etc
    Champ5 : pos 13 longueur: 1 signe 16 chiffres et 3 décimal
    Champ6 : pos 33 longueur: 1 signe 16 chiffres et 3 décimal

    A5235623YLLLL-00000000000003335960000000000000096650
    B8998785YIIII21000000000000058822-00000000000000066500

    Je n'arrive pas à passer de la valeur de -333,596 à -0000000000000333596.

    Est-ce qu'une macro dans access peut m'aider à faire cela ou une requête ou du vba ?

    Merci d'avance à tous pour vos réponses.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public function FormaterNombre(prmNombre as double) as string
       dim result as string
     
       if prmNombre < 0 then
            result=format$(prmNombre, string(16,"0") & ".000")
         else
            result=format$(prmNombre, string(17,"0") & ".000")
       end if
     
       'Supprime le separateur décimal
       result=left(result,17) & right(result, 3)
       FormaterNombre=result
    end function
    Mets le bout de code ci-dessus dans un module.

    Fait une requète en utilisant Format() pour les cas simples (ex les chaines) et utilise FormaterNombre() pour ton cas à 16 chiffres et 3 décimales.

    Après soit en VBA, soit avec une macro (mais je recommande fortement VBA) fait ExporText.

    (Note on pourrait faire la même chose avec un iif() directement dans la requète mais je trouve le VBA plus lisible.)

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Formatage de fichier csv
    Par tyvix dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 19/09/2007, 10h08
  2. problème de formatage de fichier CSV
    Par HA-MS dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/09/2007, 11h39
  3. problème formatage de fichier avec awk
    Par nenekes dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 02/11/2006, 12h53
  4. Formatage de fichier avec awk
    Par sam56 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 12/10/2006, 11h04
  5. [FOP] Formatage de fichier texte
    Par serwol dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/06/2005, 13h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo