Création de relation entre des tables

Fermé
Bubulle15 - 9 janv. 2018 à 15:56
 castours - 10 avril 2018 à 23:18
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.
A voir également:

50 réponses

castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
24 févr. 2018 à 16:40
bonjour
ou en es tu de ton projet
0
Bonjour,

J'avance très doucement, surtout que j'ai des grosses difficultés pour mettre des conditions (calculées) sur les données à afficher dans un état. Je n'arrive pas non plus à mettre des champs calculés dans un état (même en passant par une requête)

Voici mon fichier actuel : https://www.cjoint.com/c/HBAo1ApimFn
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
26 févr. 2018 à 20:52
bonjour
pour faire des calculs, il faut que tous les champs en numerique ou monetaire
exemple pour le calcul d'un prix total
tu as un champ quantité , un de prix unitaire et un prix totale
tu faits ton formulaire.
un fois fait en mode creation tu inscris la formule dans le champs prix unitaire comme ceci = [PrixUnitaire] * [Quantité]
Mets quelques valeurs dans ta base etindique moi ce que tu veux calculer
0
Bonjour,
Ce que j'essaie de faire : https://www.cjoint.com/c/HBBiDo2wp0n
Mon fichier acces : https://www.cjoint.com/c/HBBiGnaERon
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
27 févr. 2018 à 10:41
bonjour
bien recu ton document word..
Il sera difficile de réaliser ces documents.
Il faut les champs demandés correspondent a ceux de la base.
C'est la reference pour faire un etat
0
Etant donné que j'ai plusieurs champs calculés, je pensais passer par des requêtes (car il me semble qu'on ne met jamais les champs calculés dans les tables)
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
27 févr. 2018 à 17:28
bonjour
tu peux mettre le nom champ calculé dans une table mais le resultat na s'affichera pas dans la table. il sera voyant dans une requete ou un formulaire ou un etat
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

Suite encore à un long moment se silence (je m'en excuse), je reviens vers vous.

J'ai avancé dans le fichier Access. Il me reste encore quelques points noirs (calcul du CMUP et liste déroulante dans les états) mais je passe à la partie test pour voir si tout marche jusque là.
Je me rends compte que je ne peux pas aller très loin dans mes tests car dès la saisir d'une commande, j'ai un message d'erreur d'Access me disant que j'ai des doublons. En effet, si je fait une commande de 2 références de produit acheté pour fabriquer un produit fini, je remplis 2 lignes (pour chaque produit acheté) et renseigne à chaque fois un même produit fini.

Avez-vous une idée de la manière dont il est possible de résoudre cette erreur?

Ci-joint mon fichier access : https://www.cjoint.com/c/HDfoCRf526n
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
5 avril 2018 à 17:44
Bonjour
J'ai regardé la base envoyée. Pourquoi les relations une a plusieurs ont disparu.
Pour faire une commande, il faut une table commande avec N° Commande ,La date Commande,Le nom du fournisseur.
Une table ProduitsCommandés qui sera ton sous formulaire.
Cette table devra avoir la clé secondaire de la table commande pour faire la relation, la clé secondaire de la table produit, le nom du produit,la quantité commandée, le prix unitaire, le prix total, eventuellement le taux de TVA.
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
5 avril 2018 à 18:52
https://www.cjoint.com/c/HDfqV0nuaEN
Bonjour
La base modifiée
Relation refaite
Creation d'un formulaire commande
Creation d'un sous formulaire produits commandés
Donne réponse si cela te convient
Merci
0
je ne vois pas pourquoi on créé une table commande qui contient les information de la table fournisseur. Pourquoi avoir remplacé la table COMMANDE par ProduitsCommandés?
Je ne comprends pas l'utilité de cette modification à part créer une table supplémentaire.
0
Bonjour,

Est-il possible de répondre à mon cahier des charges en modifiant mon MLD comme suit ?

https://www.cjoint.com/c/HDgjZVNhdnn
0
Cela permettrait d'avoir tous les mouvement de stock dans la table MOUVEMENT
0
Cela me donne comme BDD :
https://www.cjoint.com/c/HDgnGKMLu7n

A ne prendre en compte que je n'ai fait des modifications que sur les tables pour le moment
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
Modifié le 6 avril 2018 à 18:54
Bonjour
Pour calculer un stock, on fait la somme des entrées moins la somme des sorties.
Je ne serai pas joingnable pendant quelques jours
0
Bonjour,

Dans la table t-MOUVEMENT, il y a un champ qui s'appel raison dont les valeur correspondent à un liste : Production, Régularisation ou Embarquement.
J'aurai aimé que ce champ se remplisse automatiquement lors de l'enregistrement d'un formulaire remplissant des données dans cette table.
Je m'explique : quand je remplis le formulaire PRODUCTION, par exemple, je renseigne entre autre la date de la production et la quantité produite. Ces deux informations sont renseignées dans la table t-MOUVEMENT. Pour retrouver pouvoir faire un tri entre les différentes entrées et sortie de la table t-MOUVEMENT, je voudrait que le champ raison se remplisse automatiquement par Production (puisque c'est le formulaire PRODUCTION que je rempli).
Evidemment, quand je rempli le formulaire REGULARISATION, je souhaiterai que ce soir Régularisation qui soir renseigné dans le champ raison et pareil pour le formulaire EMBARQUEMENT qui fait que ce soit la donnée embarquement qui soit renseigné dans le champ raison.
Il est vrai que je pourrai simplement afficher le champ raison dans le formulaire et faire choisir à l'opérateur ce type de raison mais vu que le formulaire a déjà été choisi, autant éviter toute erreur ou oubli...

Avez-vous une solution pour faire cela?
0
Bonjour,
Autre question :
pour calculer mon prix unitaire, il me faut les factures de transport de la commande puis les répartir sur les prix d'achat de mes produits. Je ne sais pas comment mettre à jour mon prix unitaire dans la table t-MOUVEMENT pour calculer le CMUP de mon stock.
Avez-vous des pistes de réflexion pour résoudre ce point?
0
Bonjour
Je ne sais pas comment tu as prevu tout cela mais j'essaierai de faire pour une commande d'additionner tout ce qui concerne cette commande et diviser le tout par le nombre de piece que comporte celle ci
0