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 :

Gestion préparation commande


Sujet :

Modélisation

  1. #1
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut Gestion préparation commande
    Bonjour à tous,

    J’ai un problème de conception de base de données. Je maîtrise plutôt bien Access pour la partie requête et états. Par contre je suis à la rue pour sa partie conception … j’ai besoin de votre aide pour me mettre le pied à l’étrier comme on dit.

    Voici mon projet, il faut que je fasse un programme permettant de gérer la préparation de commande dont voici le détail.
    Une commande possède un numéro qui lui est propre pour chaque année (tous les ans ce numéro est remis à 0).
    Une commande peut être composée de plusieurs articles de type différents (exemple : banane, tomate, cerises, …) avec des quantités par article.
    Les commandes sont préparées sur des palettes de différents format (50x50 cm, 60x60cm, …).
    Ce que je souhaiterai c’est, qu’à l’aide d’un formulaire, l'utilisateur rentre les différents types de palettes utilisées avec leur quantité, la commande préparée et les articles mis dessus avec leur quantité.

    Afin d’être un peu plus clair voici un exemple :

    La commande n°50 a été préparée sur 5 palettes 50x50cm et 2 palettes 100x100cm. Elle contient 200 bananes, 500 cerises et 40 melons.


    Le but étant par la suite de stocker l’information dans une table et à l’aide d’une requête (que je ferai parce que j’arrive bien) de vérifier que la totalité de la commande est terminée par rapport à ce que le client a commandé (information dont je dispose déjà).

    J’aurai surtout besoin de savoir par où commencer, c’est ce que j’ai le plus de mal à faire.

    Merci d’avance pour votre aide

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Un bon truc pour faire une modélisation et déterminer les tables dont tu as besoin, c'est de chercher les noms que tu utilises dans ta description.
    En moyenne cela te donne 60% des tables qui seront nécessaires.

    De ce que tu as décrit je déduis que tu as probablement besoin de :

    tblPersonne
    ClefPersonne
    Nom
    Prenom
    Autres info sur la personne

    tblArticle
    ClefArticle
    Nom
    Autres infos spécifiques à l'artiicle

    tblTypePalette
    ClefTypePalette
    Nom
    Autres infos spécifique

    tblClient
    ClefClient
    Nom
    Autres infos spécifiques

    tblAdresseClient utilie suelemnet si tes clients ont plusieurs adresses
    ClefAdresseClient
    ClefClient
    Autres infos spécifiques

    tblCommande
    CleCommande
    NoCommande
    ClefClient
    ClefAdresseClient
    ClefPersonne (Préparateur)
    Autres infos spécifiques

    • en relation avec tblPersonne sur ClefPersonne
    • En relation avec Client sur ClefClient
    • En relation avec AdresseClient sur ClefAdresseClient


    tblDetailCommandePallette
    ClefDetailCommandePallette
    ClefCommande
    ClefTypePallette
    QuantitePallette

    • en relation avec Commande sur ClefCommande
    • En relation avec TypePlaette sur ClefTypePalette


    tblDetailCommandeArticle
    ClefDetailCommandeArticle
    ClefCommande
    ClefArticle
    QuantiteArticle
    ClefTypePalette
    NoPallette

    • en relation avec Commande sur ClefCommande
    • en relation avec DetailCommandePallette sur ClefCommande, clefTypePallette
    • En relation avec Article sur ClefArticle


    Ce n'est qu'une ébauche et il y aura surement d'autres tables à créer plus tard mais cela me paraît une bonne base.

    la table tblDetailCommandePallette va premettre de définir les palettes qui sont disponibles pour cette commande spécifiques.
    Il faudra trouver un moyen de s'assurrer que le NoPalette est inférieur ou égale à la quantité de palette de ce type mais c'est pour plus tard.

    Une autre solution serait de créer autant d'enregistrement palette qu'il y a de palette puis d'associer cette palette spécifique à cet article.
    Ce serait une bonne solution si par exemple tes palettes sont numérotées et suivie individuellement.
    Sinon cela me parait un peu lourd.

    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.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Bonjour marot_r,

    Tout d'abord, merci d'avoir pris le temps de répondre et de m'aider.

    J'avais également pensé au fait de faire un enregistrement par palette mais je pense que c'est trop long pour l'utilisateur.

    J'ai regardé tes propositions, je ne pense pas avoir besoin de la table personne. Par "personne" j'entendais l'utilisateur qui va saisir les données.

    Tout le reste me parait cohérent.

    En ce qui concerne les numéros de commandes, codes articles, et client, je dispose déjà de toutes ces informations dans une table (lien ODBC). Dans l'idée je pensais simplement faire une liste déroulante dans laquelle l'utilisateur se contente de sélectionner le numéro de commande et les codes articles préparés (avec les quantités saisies à la main), puis qu'il indique les différents types de palettes utilisées ainsi que leur nombre.

    Du coup voilà ce que j'ai fait (les tables ne commençant pas par "tbl" sont des requêtes)

    Nom : RelationShip.JPG
Affichages : 813
Taille : 47,9 Ko
    Penses-tu que c'est gérable comme cela?

  4. #4
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    Je relance ce sujet en vous tenant informé de ce que j'ai fait.

    Je suis donc partir sur le modèle que tu m'as proposé.

    J'ai créé un formulaire principale qui alimente la table tblcommande. Ce formulaire a comme source la table ODBC_Source (en réalité c'est un lien ODBC, d'où le nom).

    J'ai rajouté un sous formulaire basé sur la table tblDetailCommandePalette avec une liste déroulante pour sélectionner les palettes basé sur la requête "Palette".

    Il y a également un autre sous formulaire basé sur la table tblDetailCommandeArticle.

    J'aurai aimé rajouter dans le sous formulaire "tblDetailCommandeArticle subform" la quantité à préparer par code article qui se trouve dans la table ODBC_Source ainsi que la quantité qui a été préparée. Cela dans le but de vérifier que la commande est bien terminée ou non.

    Je cale à cette étape. Je vous ai mis le fichier en PJ

    Merci d'avance pour votre aide
    PrepCommande.zip

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Je n'ai pas 2013.

    Je cale à cette étape
    Tu cales sur
    • Définir une requête qui te donne les résultats voulu ?
    • Créer un sous-formulaire ?
    • Autre chose ?


    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.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Salut,

    Encore merci de prendre le temps de m'aider à résoudre ce défi.

    Prep_Commande.zip
    Je viens de le reproduire en format Access 2003.

    Mon premier problème consiste en la création du deuxième sous formulaire tblDetailCommandeArticle subform

    En réalité j'aimerai voir les codes articles avec leur quantité à préparer (information qui se trouve dans ta table ODBC_Source). L'utilisateur devra spécifier à coté la quantité qu'il vient de préparer afin de voir si la commande est toujours en cours ou déjà terminée.

    Dans ce que j'ai en tête je vois la chose comme ça :

    - l'utilisateur choisit l'année, le type, le numéro, le client.
    - Il saisit ensuite le type de palette utilisé ainsi que la quantité pour chaque palette.
    - En fonction de ce qu'il a sélectionné dans les listes déroulantes, l'information s'affiche dans le sous-formulaire tblDetailCommandeArticle subform. Et il spécifie à côté de chaque ligne, la quantité qu'il vient de préparer.

    En effet, il arrive parfois qu'une commande soit partiellement envoyée. En conséquent, il faut que l'utilisateur puisse la compléter pour la prochaine cadence d'envoie.

    Je ne sais pas si c'est possible mais ce serait parfait!

    Pour la requête qui me donnera le récapitulatif, je pensais relier les tables "tblCommande", "tblDetailCommandeArticle" et "tblDetailCommandePalette" par le champs IDCommande

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Bonjour John

    Voici une proposition de MCD et MPD non finalisée car manque une description global des processus métiers notamment sur
    1. la livraison =>? Le lieu est il toujours une des adresses du client?
    2. Le transporteur=>? Possible d'en avoir plusieurs pour une livraison?


    Et la liste des questions n'est pas exhaustive.

    Modèle conceptuel
    Nom : preparation_mcd.jpg
Affichages : 758
Taille : 128,3 Ko



    Modèle physique
    Nom : preparation_mpd.jpg
Affichages : 789
Taille : 129,6 Ko
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  8. #8
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Merci pour ta réponse informer.

    Ce modèle est très complet, par contre il n’est pas adapté à mes besoins.
    En réalité je n’ai besoin d’avoir que ces informations : Année, Type commande, numéro de commande, articles préparés ainsi que la quantité (afin de vérifier si tout est préparé ou s’il en reste), type de palette utilisé ainsi que le nombre.

    Du coup le modèle proposé par marot_r me convient parfaitement.

    La complexité dans mon projet est que l’information de ce qu’il y a à préparer existe déjà (lien vers table ODBC). J’ai donc besoin d’utiliser ces données et de rajouter les informations type de palettes utilisées ainsi que le nombre de chaque, et articles préparés.

    Comme tu peux le voir dans la pièce jointe que j’ai mise dans le post précédent, cela fonctionne mais j’ai besoin de l’optimiser afin qu’il soit plus intuitif.

    J’espère avoir été assez clair.

    PS : ton post a été envoyé à 03h36. Quel courage d’aider encore des gens à cette heure-là !

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Je charge une ébauche avec trois sous-formulaires dans un formulaire principal

    • - Commandes
    • - Detail de la commande
    • - Détail des palettes


    Maintenant que tu as la liste des commandes, tu peux utiliser les options de filtres sur le formulaire de commandes.

    Sinon attention, il faut dans tes listes ajoutes l'option tous ou * ==> Voir ici une proposition d'industrialisation-zones-listes-listbox
    Fichiers attachés Fichiers attachés
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  10. #10
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Je ne savais pas qu'il était possible de faire cela.

    J'aurai aimé conserver la logique de liste déroulante (comme dans mon exemple).

    Par contre j’adore le principe d’avoir un filtre qui m’afficherai toutes les codes articles à produire avec quantité.

    En fait, j’aimerai avoir les listes déroulantes dans lesquelles je choisis la commande préparée, un sous formulaire dans lequel je spécifie les palettes utilisées avec leur quantités (jusque-là, c’est ce que j’ai fait).
    Puis, en partant sur ton idée, un sous formulaire avec les articles et quantités à produire (en gros le résultat de la requête « Recherche_Article), avec un champs en plus ou l’utilisateur indiquera les quantités qu’il vient de préparer par article.

    Tu penses que c’est faisable ?

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    John

    Une fois les zones listes en cascade finalisées avec l'attribue "Tous", il suffira d'appeler la méthode filter sur la forme cible ��.

    Bon développement

    Bonjour chez vous
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  12. #12
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Informer,

    Merci pour ton aide. Ce que je ne comprend pas c'est que j'ai déjà des zones de liste déroulante en cascade.

    C'est quoi cette méthode filter sur tous?

  13. #13
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Bonjour John


    Considérons que tu as 2 listboxes:

    Sans le libellé "Tous", tu affiches dans la listbox2 que les éléments relatifs à l'élément sélectionné dans la listbox1

    Tous permet d'afficher dans la listbox2 tous les éléments relatifs à tous les éléments de la listbox1

    Une suggestion, si ce n'est pas essentiel pour ton projet i.e le projet satisfait tout le monde, mets ça de côté, c'est vraiment optionnel!


    Bonjour chez vous
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  14. #14
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Ok je comprend bien mieux maintenant!
    Par contre ça ne me sert pas dans mon cas malheureusement.

    Ce que je voudrai c'est que Recherche Article subform1 me propose le résultat de la requête Recherche_Article, avec un champ en plus dans lequel l'utilisateur saisi la quantité qu'il vient de préparer. Une fois toutes les informations, l'utilisateur clique sur le bouton "Ajouter" et les informations de ce sous-formulaire s'enregistrent dans la table tblDetailCommandeArticle

    Avec une image ce sera plus simple je pense

    Nom : Capture.JPG
Affichages : 702
Taille : 48,9 Ko

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    John
    Peux tu télécharger ta base?

    Bonjour chez vous
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  16. #16
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Bonjour informer,

    Voici ma base, légèrement simplifiée (je ne gère plus les clients).

    Un grand merci! Prep_Commande.zip

  17. #17
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Salut John

    Ton objectif est :
    Ce sous formulaire est basé sur la requête "Recherche_Article". Il montre à l'utilisateur tous les codes articles ainsi que les quantités à préparer pour la commande sélectionnée.
    J'ai rajouteé un champs "Quantité Préparé" dans lequel l'utilisateur indique la quantité qu'il vient de préparer.
    Je souhaiterai que les informations saisies soient stockées dans la table "tbleDetailCommandeArticle" sauf si le champs "Quantité Préparée" est nul
    Nom : cpatureEcran.jpg
Affichages : 759
Taille : 179,4 Ko

    Je suis désolé pour toi mais il y a un problème de conception et il faut donc procéder autrement car
    1. La requête Recherche_Article sur laquelle se base le formulaire est une requête agrégative (Group by)
    2. Tu as ajouté un champ non lié qui ne peut être géré au niveau du record et affiche la valeur saisie pour l'ensemble des lignes indistinctement (Cf. ci-dessous)


    Nom : cpatureEcran2.jpg
Affichages : 672
Taille : 50,3 Ko

    Bon courage

    Bonjour chez vous
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  18. #18
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    informer,

    Donc pour toi ce que je souhaite est irréalisable?

  19. #19
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Moi, je te suggère de revoir la cinématique du projet!
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  20. #20
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Tu verrais quoi toi?

Discussions similaires

  1. Gestion de commandes sous Access 2007
    Par Esquiss dans le forum Modélisation
    Réponses: 1
    Dernier message: 25/08/2008, 17h37
  2. Choix de technologies pour application de gestion de commandes
    Par jeffciara dans le forum Général Java
    Réponses: 2
    Dernier message: 14/01/2008, 09h18
  3. [USE CASE] Gestion de commande
    Par ducker88 dans le forum Cas d'utilisation
    Réponses: 9
    Dernier message: 06/02/2007, 09h20
  4. [Conception] Comment améliorer mon application de gestion de commandes ?
    Par etiennegaloup dans le forum Framework .NET
    Réponses: 5
    Dernier message: 09/08/2006, 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