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

Requêtes et SQL. Discussion :

remise en forme d'une table


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 11
    Points
    11
    Par défaut remise en forme d'une table
    Bonjour,
    j'ai une table access contenant les champs : nom, adresse, cp... code banque, code guichet, rib, montant...
    Je dois extraire des données pour créer un fichier texte en format fixe. Je ne sais pas si je dois passer par du code ou si des requêtes de mise à jour sont possibles.
    Je vous éclaire un peu sur les contraintes que je rencontre :
    * dans la table, seuls les champs concernant les coordonnées bancaires m'intéressent
    * je dois, en plus, ajouter des champs qui ne sont pas dans la table
    * les champs doivent avoir un nombre de caractère bien précis
    * les montants sont sous forme #,## alors qu'il faut que je les mette sous 16 caractères, sans virgule et à droite du champ (le début sera complété par des 0)
    * la première ligne de données doit être différente
    * je dois avoir la somme de tous les montants dans la dernière ligne
    * et il faut que j'exporte le tout dans un fichier texte, tout ça pour envoyer à la banque...

    J'ai l'impression de me noyer dans un verre d'eau. Je n'arrive pas à savoir si c'est faisable ou pas.
    Merci de m'éclairer

    CD

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonsoir,

    Parmi les contraintes que tu mentionnes, je note deux points qui compliquent un peu la donne:
    * la première ligne de données doit être différente
    * je dois avoir la somme de tous les montants dans la dernière ligne

    Une requête peut bien souvent répondre à toutes les autres contraintes mentionnées, mais cela deviendra plus délicat à cause de ces lignes au format différent.

    Dans ce cas, tu peux exporter les données principales (via l'export d'une requête) puis ajouter par code VBA les lignes d'entete et de fin de fichier (par ouverture du fichier....).

    Tu peux aussi t'en sortir via une table temporaire dans laquelle tu places les données à exporter.
    Compte tenu des formats de lignes différents de ton fichier à générer, une solution que j'ai déjà exploitée consiste à utiliser une table temporaire composée essentiellement d'un champ de type Mémo. Il "suffit" alors de construire (VBA + SQL) les lignes de ton fichier texte (selon le format attendu) dans le champ mémo, puis d'exporter la table. Cette solution m'a permis notamment de générer des fichiers texte dont le format varie d'une ligne à l'autre.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Bonjour,

    Une requete pour récupérer les données, "un peu" de code pour mettre en forme et exporter.
    Ça me paraît tout à fait faisable

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Bonjour
    Merci de vous intéresser à mon problème.
    La nuit m'a permis de trouver quelques solutions.
    En fait, Mout1234, la première ligne n'est pas vraiment un souci car ce sera des données qui seront toujours fixes (nom et rib du client). Je peux donc les intégrer via une requête mise à jour.
    La dernière ligne me pose un peu plus de souci mais je pense que je peux faire entrer le montant total par l'utilisatrice qui ira le chercher dans un état (qui existe déjà).
    Ce qui me gène plus est le champ avec les montants qui ne doivent pas avoir de virgule pour les décimales (je fais une requête calcul), qui doivent être cadrés à droite, sur 16 car et complétés par des 0. Là, je bloque.

    Sinon, qu'entends-tu par :
    "utiliser une table temporaire composée essentiellement d'un champ de type Mémo. Il "suffit" alors de construire (VBA + SQL) les lignes de ton fichier texte (selon le format attendu) dans le champ mémo, puis d'exporter la table. Cette solution m'a permis notamment de générer des fichiers texte dont le format varie d'une ligne à l'autre."

    Guardian, merci de me dire que c'est faisable.

    CD

  5. #5
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonsoir,

    Ton montant doit être multiplié par cent (suppression de la virgule et deux derniers chiffres correspondent au cents) ou sans décimales (arrondi)?

    Pour faire cette mise en forme, tu peux créer une petite fonction en vba qui s'en charge et que tu utilises alors dans ta requête. Ceci dit, tu devrais pouvoir traiter cela directement en SQL, avec l'aide de quelques fonctions d'Access:
    (Je suppose ici qu'il te fallait enlever le séparateur de décimales tout en gardant les cents...)

    Essaies quelque chose du genre (je viens de l'écrire dans ce message... non testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT RIGHT$(string(16,"0") & cStr(LeMontant*100),16)
    FROM Matable

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Merci
    Merci beaucoup pour ta requête SQL, c'est exactement ce qu'il me fallait. Je vais essayer de finir le reste seule comme une grande avec certainement encore des questions.
    Bonne soirée

    CD

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. stockage de donnée d'une forms vers une table
    Par Nacera dans le forum IHM
    Réponses: 11
    Dernier message: 26/05/2008, 11h30
  2. Mise en forme d'une table
    Par PyMon dans le forum Access
    Réponses: 4
    Dernier message: 24/07/2007, 17h34
  3. Mise en forme d'une table
    Par Ylmith dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 24/07/2007, 09h13
  4. [Ado Access] deux form et une table
    Par host22 dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/06/2007, 19h52
  5. [Forms]delete une table (Forms 6i)
    Par OUALASS dans le forum Forms
    Réponses: 6
    Dernier message: 01/06/2006, 12h07

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