Création de relation entre des tables

Bubulle15 -  
 castours -
Bonjour à tous,

Je me trouve face à un problème de création de relation entre mes tables.

Voici le sujet :
Un produit peut être commandé plusieurs fois. Il peut être fourni par plusieurs fournisseurs. Une commande peut être livrée en plusieurs fois. Une réception correspond à une livraison. Une réception peut correspondre à plusieurs productions.

J’ai donc créé les tables suivantes :
FOURNISSEUR (RefFour, NomFour)
PRODUIT (RefPro, LibPro)
LIVRAISON (#NomCom, #NumLot, QuantProdLivPrev, DateLiv, NomCont)
COMMANDE (#RefFour, #NumCom, #RefPro, DateCom, QuantComProd)
PRODUCTION (NumLot, DateProd, QuantProd)
RECEPTION (NumLot, QuantRecep, NbProdRecep, DateRecep)

En effet, la quantité de produit commandé ne correspond par toujours à la quantité qui est prévue d’être livré qui elle-même n’est pas toujours la quantité réceptionnée.

Le problème étant que Access n’accepte pas de faire une liaison entre des tables qui ont plusieurs clés primaires.

J’avoue avoir du mal à voir comment résoudre ce problème.

Toute aide est la bienvenue.

Merci d’avance pour vos réponses.

50 réponses

  • 1
  • 2
  • 3
Résumé de la discussion

Le problème porte sur la mise en place de relations entre plusieurs tables Access (FOURNISSEUR, PRODUIT, COMMANDE, LIVRAISON, PRODUCTION, RECEPTION) pour modéliser commandes et livraisons avec des références et quantités. La solution consiste à remplacer les clés primaires composites par des identifiants simples et à ajouter des tables de liaison entre les entités, par exemple Commande_Produit pour relier commandes et produits. Des réponses évoquent aussi le calcul du CMUP et des limites techniques d'Access, comme la largeur des champs et les listes déroulantes, qui compliquent l'automatisation. En parallèle, il est conseillé de créer des clés étrangères simples pour chaque entité et d'utiliser des tables d'association afin de modéliser les relations many-to-many, ce qui facilite la maintenance.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
     
    bonjour
    peux tu mettre ta base compressée dans un lien avec cijoint sur le site comment ca marche.
    comme cela on verra mieux le travail que tu as fait.
    0
    1. Bubulle15
       
      Bonjour,

      Je ne vois pas le lien dont vous parlez
      0
  2. castours
     
    bonjour
    Tu importes ta base access compressée dans ci joint.
    Une fois importé, tu creais un lien en appuyant sur le bouton en bas de la page. Le lien s'affiche en haut de la page. C'est ce lien que tu copies et que tu mets dans un message de comment ca marche
    0
  3. Bubulle15 Messages postés 5 Statut Membre
     
    Bonjour,
    "Tu importes ta base access compressée dans ci joint." <- ça je ne sais pas faire, c'est où ci-joint?
    0
    1. Bubulle15 Messages postés 5 Statut Membre
       
      En fait c'est Cjoint
      0
  4. Bubulle15 Messages postés 5 Statut Membre
     
    Je suis en pleine reconsidération de mon projet. Je suis donc en train de tout reprendre à zéro.

    Je vous explique ma situation.

    Actuellement, nous commandons des bobines de fils et des fournitures auprès de différents fournisseurs. Chaque produit acheté peut être fourni par plusieurs fournisseurs. Nous passons une commande d’une certaine quantité de fils ou fourniture. Le fournisseur fait des calculs et nous renvoi la quantité qu’il peut envisager de nous fournir et leur prix. Nous recevons par la suite une liste des quantités chargées. Nous recevons une facture sur laquelle figure le coût total de la marchandise. Enfin, nous réceptionnons la marchandise et la contrôlons (ce qui engendre une nouvelle quantité).

    Nous produisons nos produits finis avec les fils. Une certaine quantité de fils n’est pas utilisée lors de la production et est donc remise en stock.
    Ainsi, nous avons l’organisation suivante :
    PRODUIT (fils ou fourniture) -> COMMANDE -> LIVRAISON -> EMBARQUEMENT -> FACTURE -> RECEPTION -> PRODUCTION -> RETOUR -> PFINI (=Produit Fini)

    J’avoue avoir des difficultés à déterminer tous les champs de mes tables et mes clés primaires.

    J’ai réalisé le tableau suivant mais si je commence à mettre en place tous les champs de mes tables, je me retrouve avec une vraie toile d’araignée
    Nom champ Description Champ TABLE
    DateCom Date de la commande COMMANDE
    QtéCom Quantité (en kg) commandé COMMANDE
    NumCom Numéro de commande COMMANDE
    Camp Campagne de commande COMMANDE
    NumCont Numéro de conteneur EMBARQUEMENT
    NumLot Numéro de lot du produit EMBARQUEMENT
    Total Coût total de la livraison sur facture FACTURE
    NumFact Numéro de la facture FACTURE
    RefFour Référence du fournisseur FOURNISSEUR
    LibFour Libellé du fournisseur FOURNISSEUR
    QtéProdPrévu Quantité de produit prévu à la livraison LIVRAISON
    DateEmbarqPrévu Date prévue d'embarquement LIVRAISON
    DateLivPrév Date de livraison prévue LIVRAISON
    TotalPrévu Coût total de la livraison prévu LIVRAISON
    RefPF Référence de produit fini PFINI
    LibPF Libellé produit fini PFINI
    DateProd Date de production PRODUCTION
    Util Utilisation réelle de la bobine PRODUCTION
    RefProd Référence du produit PRODUIT
    LibProd Libellé du produit PRODUIT
    QtéProd Quantité de produit réceptionné RECEPTION
    NbBobine Nombre de bobine prévu en réception RECEPTION
    QtéRetourProd Quantité revenue de production RETOUR
    QtéProduit Quantité de produit fini réalisé RETOUR
    NbRetourBob Nombre de bobine revenu de production RETOUR

    PRODUIT (RefProd, LibProd)
    COMMANDE (NumCom, DateCom, QtéCom, Camp, #RefProd, #RefFour, #RefPF)
    LIVRAISON (QtéProdPrévu, DateEmbarqPrévu, DateLivPrév, TotalPrévu, #RefProd, #NumCom)
    EMABRQUEMENT (NumCont, NumLot, #RefProd, #NumCom)
    FACTURE (Total, NumFact, #NumCom)
    RECEPTION (QtéProd, NbBobine, #RefProd, #NumCom, NumLot)
    PRODUCTION (DateProd, Util, #RefProd, NumLot)
    RETOUR (QtéRetourProd, QtéProduit, NbRetourBob, #RefProd, #RefPF, NumLot)
    PFINI (RefPF, LibPF)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. castours
     
    Bonjour
    Tes problemes viennent de tes relations
    Tu ne peux pas faire une relation un a plusieurs sur 2 champs clé primaire.
    Exemple
    Il te faut Champ 1 N° auto dans une table
    Il te faut champ 1 en numerique dans l'autre table
    0
  7. castours
     
    Bonjour
    https://www.cjoint.com/c/HAnjevjQwMw

    Dans ce lien, la base modifiée avec les nouvelles relations.
    Un champ de confusion avec un N°Auto de la table production et table produits. Ce sont les meme nom
    0
    1. bubulle15
       
      Bonjour,

      Merci pour votre aide. Mais il n'y a plus de lien entre les tables commande et produit du coup. ça ne peut pas poser problème quand je vais vouloir faire un formulaire pour remplir une commande où je voudrais avoir une liste des références des produits et que lors du choix, le libellé se remplisse automatiquement?
      0
  8. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
     
    bonjour
    que veux tu faire exactement?,
    Lorsque tu veux passer un commande avoir le choix d'une liste de produit a commander.
    0
  9. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
     
    bonjour
    a toi de refaire la relation correctement
    0
  10. Bubulle
     
    Désolé pour mon retard dans mes réponses mais j'ai eu beaucoup de tâches à faire ces dernières semaines.

    J'ai repris encore le travail sur cette tâche et ai modifié encore quelques données. j’obtiens alors les tables suivante :
    FOURNISSEUR (RefFour, NomFour)
    PRODUIT (RefProd, LibProd)
    COMMANDE (NumCom, DateCom, QtéCom, Camp, #RefPF, #RefProd, #RefFour)
    LIVRAISON (QtéProdPrévu, DateEmbarqPrévu, DateLivPrév, TotalPrévu, #RefProd, #NumCom)
    EMABRQUEMENT (NumEmbarq, NumCont, NumLot, DateEmbarq, #RefProd, #NumCom)
    FACTURE (Total, NumFact, #NumCom)
    RECEPTION (QtéProd, NbBobine, NumLot, #NumCom)
    FACTURE TRANSPORT (Fret, Douane, Assurance, #NumEmbarq)
    PRODUCTION (DateProd, Util, NumLotPF, QtéPF, #NumLot, #RefPF)
    RETOUR (QtéRetourProd, QtéProduit, NbRetourBob, NumLot, NumLotPF, #RefProd, #RefPF)
    PFINI (RefPF, LibPF, #NumLot)

    Ce fichier me servirait donc à gérer les stocks de matière acheté par lot, réaliser un CMUP des produits sachant que le prix définitif des produits achetés n’est obtenu que lors de la réception des factures transport soit après l’étape « réception ». Il faudrait également que je puisse mettre en place une alerte lorsque la quantité enregistrée à l’étape « Livraison » est supérieure à la somme des quantités enregistrées à l’étape « réception » et lorsque les quantités de l’étape « embarquement » sont différentes de celles de l’étape « réception ».

    J’ai également plusieurs états :
    - Commandes : répertorie toutes les réceptions pour chaque commande avec les noms des références et leurs quantités
    - Stock matière première : qui définit l’état des stocks pour chaque référence de fils et les détail selon leur numéro de lot. Il faudrait donc qu’il y ait un écrasement que la quantité de produit acheté par la quantité de produit retourné de production
    - Commandes en cours : qui renvoie les quantités restant à réceptionner pour chaque référence commandée, les dates prévues de livraison, dates d’embarquement ou date d’embarquement prévue.
    - Stock produit fini : qui présente pour chaque type de produit fini, leur référence, leur dimension ainsi que les numéros de lot des matières premières utilisées pour leur production

    Les formulaires que je pense mettre en place seraient pour :
    - Commande
    - Livraison
    - Facture
    - Embarquement
    - Réception
    - Facture transport
    - Création d’un produit acheté
    - Production de produit fini
    - Quantité de produit acheté retourné de production
    0
  11. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
     
    bonjour
    peux tu m'expliquer pourquoi toutes tes relations aboutissent sur des clés primaires.
    Logiquement une cle primaire et un secondaire forment une relation.
    donc pour moi les relations ne sont pas bonnes
    0
  12. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
     
    bonjour
    je t'avais envoyé la base modifiée avec les bonnes relations.
    Cela ne te convient pas?
    0
    1. Bubulle
       
      Je n'arrive pas à mettre en place un formulaire "commande" dans laquelle il y aurait un choix des produits (libellé) et avec remplissage automatique de la réf de ce produit. et avec la possibilité de mettre autant de ligne que l'on veut
      0
  13. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
     
    bonjour
    remets ta base sur le site
    0
    1. Bubulle
       
      https://www.cjoint.com/c/HBiidJNm1nn
      0
  14. castours
     
    bonjour
    je te joins dans ce lien un exemple
    https://www.cjoint.com/c/HBio5JkLmn8
    dis moi ce que tu en penses
    0
    1. Bubulle
       
      ça ne correspond pas vraiment à ma situation. Ne vous êtes-vous pas trompé de fichier?
      0
  15. castours
     
    bonjour
    c'est un exemple
    Pour ton cas, il faut un table commande, une table produit, une table facture et fournisseur ou particulier.
    maintenant a savoir si tu commandes chez un founisseur ou un particulier qui te passes commande.
    0
    1. Bubulle
       
      Je pense qu'il me faut beaucoup plus de table que ça :
      FOURNISSEUR, PRODUIT, COMMANDE, LIVRAISON, EMABRQUEMENT, FACTURE, RECEPTION, FACTURE TRANSPORT, PRODUCTION, RETOUR et PFINI.
      Je ne prends en compte que la partie amont de la supply chain donc je n'ai pas besoin de table client.
      0
  16. Bubulle
     
    Est-il possible de remplir avec des données une table en plusieurs étapes (donc avec plusieurs formulaires différents)?
    0
  17. Bubulle
     
    Autre question :
    Pour que mes produits achetés soient d'abord traités en référence (sur mes commandes, livraisons et factures) puis en numéro de lot (sur mes embarquements, réceptions, productions et produits finis), sachant que du coup à une référence correspond plusieurs numéros de lot, faut-il que je crée 2 tables une PRODUIT et l'autre PRODUIT LOTI ?
    0
  18. castours
     
    bonjour
    je voudrai connaitre comment tu veux faire fonctionner ta base?
    0
    1. Bubulle
       
      Avec des formulaires essentiellement :
      Les formulaires que je pense mettre en place seraient pour :
      - Commande, où je renseigne NumCom, DateCom, QtéCom, Camp en utilisant une liste déroulant pour chacune des références qui sont dans la table produit
      - Livraison où je renseigne QtéProdPrévu, DateEmbarqPrévu, DateLivPrév, TotalPrévu en utilisant :
      une liste déroulante pour le numéro de commande
      une liste déroulante de chacune des références qui sont dans la table commande et qui correspondent à cette commande.
      - Facture où je renseigne Total, NumFact une liste déroulante de chacune des références qui sont dans la table livraison et qui correspondent à cette livraison.
      - Embarquement où je renseigne NumEmbarq, NumCont, NumLot, DateEmbarq en utilisant une liste déroulante de chacune des références qui sont dans la table livraison et qui correspondent à cette livraison
      - Réception où je renseigne QtéProd, NbBobine, NumLot en utilisant liste déroulante de chacune des références qui sont dans la table embraquement et qui correspondent à cette embarquement
      - Facture transport où je renseigne Fret, Douane, Assurance qui correspondent à cette livraison avec l'utilisation d'une liste déroulante des numéros d'embarquement
      - Création d’un produit acheté où je renseigne RefProd, LibProd quand je commande une nouvelle référence de produit
      - Production de produit fini où je renseigne DateProd, Util, NumLotPF, QtéPF, QtéRetourProd, QtéProduit, NbRetourBob avec une liste déroulande de référence de produit fini puis une liste des numéros de lots que je peux utiliser (avec comme contrainte : quantité en stock supérieure à 0 et que le produit fini peut être fabriqué à partir de ces références de produit acheté)
      0
  19. Bubulle
     
    J'ai créé un nouveau fichier. Peut être est-il plus correct mais j'ai peur de ne pas pouvoir gérer ma table embarquement comme je le voudrai à savoir la remplir avec un formulaire embarquement puis compléter les enregistrements avec le formulaire facture transport

    https://www.cjoint.com/c/HBjoZZt1Ecn
    0
  20. castours
     
    bonjour
    vu les relation tu ne peux pas completer le formulaire embarquement.
    il faudrait faire une table des prix unitaires pour les embarquements ou ajouter les prix du fret, de la douanes et assurance dans facture
    0
    1. Bubulle
       
      Le problème c'est que le prix unitaire n'est valable que pour une référence au moment d'une commande et non pour toutes les commandes. Par exemple mon produit A va avoir un prix x pour la commande 1, un prix y pour la commande B ...
      Par contre tous les produits d'une commande auront le même prix unitaire sur cette commande. Sur le même exemple, le produit B de la commande 1 aura pour prix unitaire x.
      0
    2. Bubulle
       
      Au départ, j'avais fait la table FACTURE TRANSPORT pour enregistrer les factures de fret, douane et assurance mais je n'ai avis qu'une seule clé étrangère (NumEmbarq) ce qui ne va pas.
      0
  21. castours
     
    bonjour
    vu les relation tu ne peux pas completer le formulaire embarquement.
    il faudrait faire une table des prix unitaires pour les embarquements ou ajouter les prix du fret, de la douanes et assurance dans la table facture
    0
    1. Bubulle
       
      ça me donnerait ceci :
      https://www.cjoint.com/c/HBjqhCTClwn
      0
  • 1
  • 2
  • 3