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

Modélisation Discussion :

Quelle structure pour traiter des conditions dans une base de données de commande ? [AC-2007]


Sujet :

Modélisation

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    683
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 683
    Points : 237
    Points
    237
    Par défaut Quelle structure pour traiter des conditions dans une base de données de commande ?
    Bonjour à tous,
    Je ne suis pas spécialiste d'Access et je n'ai pas l'habitude de travailler à la conception de base d'où mes interrogations.

    Je dois créer une base pour gérer des bons de commandes -> jusque là ça va.
    Celle est basée sur des récupérations de tables SQL provenant d'une autre appli.

    Mais j'ai une complication et avant de me lancer "tête baissée" je voudrais vos avis.

    En + des tables, entêtes et détails_bon_commandes. J'ai des tables :
    Clients -> contient code client, adresse, code promo
    Articles -> contient code art, ref, prix, code promo
    historiques-> contient code art, prixventehisto, code client
    Promotion-> contient code art, codeclient, code promo, prixventepromo


    En cas de saisie d'un article, je dois vérifier si la Table Client contient un code promo. Si Oui, prendre le PV de la table Promotion en rapport.
    Mais je dois aussi vérifier dans la table Historiques, si le client a déjà un autre histo + favorable et si oui dans ce cas, appliquer le Prix de Vente de la table Historiques.

    J'ai plusieurs autres vérif du même style à faire à chaque saisie.

    A votre avis, quelle la meilleur orientation, méthode conceptuelle que je dois adopter ?
    Est-ce que je pourrais gérer ces conditions multiples par des macros (sans code vba) ?

    Merci pour votre avis.
    Thibault

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour

    Vous mélangez traitement et conception.

    Les macros et le VBA n'ont rien à faire à ce stade.

    Votre structure me paraît bizarre :

    codepromo présent à la fois dans client, dans promotion et aussi dans articles

    Il faut revoir ce modèle et determiner ce qui constitue une promotion notamment ça durée de validité. A l'état actuel un article ne peut faire l'objet que d'une seule promotion et pire un seul client peut en bénéficier, le tout pendant toute la durée de vie de l'application

    Enfin, pour répondre à votre question, il s'agira d'une requête qui determinera le prix le plus bas dans les tables promos et historique.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    dans la mesure où les infos sont des données externes il n'est peut être pas utile de revoir la conception

    queles reqêtes sql un peu astucieuses devraient règler le pb sans macro ni fonction
    Elle est pas belle la vie ?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    683
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 683
    Points : 237
    Points
    237
    Par défaut
    Bonjour
    Merci pour vos points de vues.
    Effectivement, je ne peux rien changer à la conception. Je dév qu'une sorte d'interface mais il est impératif que je respecte les données présentes :
    1 article peut être vendu avec ou sans une promo
    1 client peut avoir 1 ou plusieurs promos sur 1 ou des articles
    1 article peut avoir plusieurs promos selon le client et selon la période de validité.

    Merci je vais creuser dans mes requêtes SQL
    A+
    Thibault

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,

    je comprends mal la table historique, les prix fermes de vente étant présents dans les tables des commandes.
    Dans ce cas, lorsque le prix de vente est préférentiel au prix promotionnel peut-être faut-il simplement mettre à jour le prix promotionnel.
    De cette manière tu n'as plus à faire des vérif à l'ajout d'un produit sur la commande, tu modifies la table des Promos quand nécessaire.

    Maintenant, si je comprends bien il s'agît de la saisie des articles sur un nouveau bon de commande; sachant que le client concerné a été déjà saisi.
    Tu dois alors créer une requête qui récupère tous les articles de la table, leur prix, et si elle existe la valeur minimum entre le prix promo attribué au client et le prix déjà pratiqué.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Articles.*, Nz((SELECT PrixVentePromo FROM Promotion WHERE CodePromo=Clients.CodePromo AND CodeClient=Clients.CodeClient And CodeArticle=Articles.codeArticle), Article.Prix) As PrixPromo, Nz((SELECT PrixHisto FROM Historiques WHERE CodeClient=Clients.CodeClient And CodeArtitcle=Articles.CodeArticle), Articles.Prix) As PrixHisto, IIF(PrixHisto<PrixPromo, PrixHisto,PrixPromo) As PrixVente
    FROM Articles,Clients
    WHERE Clients.CodeClient=....;

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

Discussions similaires

  1. Meilleure méthode pour envoyer des variables dans une base depuis shell
    Par Invité dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 17/09/2014, 14h20
  2. Réponses: 15
    Dernier message: 08/08/2012, 17h35
  3. Quelle API pour traiter des paramètres d'un programme en ligne de commande ?
    Par Pierre8r dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 19/12/2008, 11h36
  4. Interet de mettre des fichiers dans une base de donnée
    Par Oberown dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 04/07/2005, 11h35
  5. inserer des images dans une base de données
    Par alilou04 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2004, 18h54

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