|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 133 ![]() |
Bonjour à tous,
J'ai besoin d'avoir un avis sur mon MCD. En gros, j'ai 4 tables 1 n 1 n Contrat-------------Commande-----------Article |1 | |n Avenant |1 | |n Commande |1 | |n Article Contrat (num_contrat,....) Avenant (num_avenant, num_contrat,....) Commande (num_commande, num_avenant, num_contrat,....) Article (num_article, num_commande, num_avenant, num_contrat,....) Est-ce que selon vous, il y a 1 probblème au niveau de mes relations ? Si oui, pouvez-vous m'expliquer ? Merci de votre aide^^ |
|
|
00
|
|
|
#2 |
![]() ![]() |
Salut,
Et bien c'est pas très clair comme représentation. Quels sont les liens entre les différentes tables ?? Je ne comprends pas la relation entre avenant et commande. je pense que la relation entre commande et article est fausse. une commande est composée de 1 ou pls articles un article compose une ou pls commande. Donc tu devrais avoir une association non cif représentée par une table (composer). Contrat (num_contrat,....) Avenant (num_avenant,....) Commande (num_commande,....) Article (num_article,....) Composer(num_commande, num_article,....)
__________________
Access : Les Cours, Les Sources et Les FAQs Office Avant de poster : les choses importantes à lire pour la bonne tenue du forum.sinon Ma boite à MPs n'est pas l'annexe du forum |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 133 ![]() |
Merci d'avoir répondu.
Les liens sont les suivants : Un contrat a 1 ou plusieurs avenants. Un avenant a 1 ou plusieurs commandes. Une commande (ou bon de commande) a 1 ou plusieurs articles. Ce que jvoudrais faire c'est ajouter un lien entre la table Contrat et la table Commande (sans passer par la table Avenant) La question que je me pose est : si j'ajoute ce lien est-ce que mon MCD sera valable ? |
|
|
00
|
|
|
#4 | |
![]() ![]() |
Citation:
Si tu as le n° de commande, tu as le n° d'avenant donc le n° de contrat. Donc pour compléter : Contrat (num_contrat,....) Avenant (num_avenant,....num_contrat) Commande (num_commande,....num_avenant) Article (num_article,....) Composer(num_commande, num_article,....)
__________________
Access : Les Cours, Les Sources et Les FAQs Office Avant de poster : les choses importantes à lire pour la bonne tenue du forum.sinon Ma boite à MPs n'est pas l'annexe du forum |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 133 ![]() |
Merci d'avoir rajouter les clés étrangères.
Dans certains cas, il existe des contrats-commandes, c'est-à-dire que la case "avenant" n'existe pas. J'aimerais créer cette procédure-là. Je ne vois pas de solutions pour exprimer cette notion de contrat-commande. As-tu une idée ? Merci |
|
|
00
|
|
|
#6 |
![]() ![]() |
A mon avis, il faudrait faire une seule table pour les commandes et avenants.
Avoir une propriété qui définit si c'est une commande ou un avenant (tout autant que les champs soient identiques). La structure serait comme ceci : ContratAvenant (num_contratAvenant,....IDnum_contratAvenant) Commande (num_commande,....num_contratAvenant) (peut être trouver un autre nom à la table) Cette conception te permet de passer des commandes pour un contrat ou un avenant. Dans le cas d'un avenant, lors de la mise en place de l'IHM, tu testes le champ qui te permet de savoir si c'est un avenant (case à cocher ?) et tu force la saisie d'un contrat pour le champ IDnum_contratAvenant. Au niveau des relations, tu insères 2 fois la table ContratAvenant et tu lies la 1ère table à Commande, et la seconde à IDnum_contratAvenant de la 1ère table.
__________________
Access : Les Cours, Les Sources et Les FAQs Office Avant de poster : les choses importantes à lire pour la bonne tenue du forum.sinon Ma boite à MPs n'est pas l'annexe du forum |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 133 ![]() |
Je suis désolé mais je n'ai pas très bien compris ton idée où l'on a 2 fois la table ContratAvenant.
Pour toi, IDnum_contratavenant, c'est la clé primaire de la table ? Je ne veux pas te faire répéter ce que tu as dit mais peux-tu me réexpliquer parce que ce n'est pas très clair dans ma tète. Merci beaucoup. |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 133 ![]() |
Le fait qu'on lie les tables Avenant et Commande règle un problème mais en ajoute d'autres (par exemple créer une commande à un avenant existant)
Je t'écris les différentes procédures possibles : -Création d'un contrat simple (on fait apparaitre le formulaire liée à la table Contrat) -Création d'un avenant venant d'un contrat existant (on fait apparaitre le formulaire liée à la table Contrat et le sous-formulaire lié à la table Avenant) -Création d'une commande venant d'un avenant existant (on fait apparaitre le formulaire liée à la table Avenant et le sous-formulaire lié à la table Commande) -Création d'un contrat-commande (on voudrait faire apparaitre le formulaire liée à la table Contrat et à la table Commande sans passer par la table Avenant). |
|
|
00
|
|
|
#9 |
![]() ![]() |
Je ne vois pas le problème...
Je verrais plus la conception de tes formulaires de la manière suivante : Un formulaire qui affiche les contrats (donc basé sur une requête pour ne garder que les contrats). A l'intérieur : un sous formulaire pour afficher les avenants. Des boutons pour créer/supprimer/ajouter des contrats et des boutons (pour faire les mêmes opérations) pour les avenants. Un bouton visualiser qui permet s'il y a des avenants, de consulter les commandes associées à l'avenant sélectionné. S'il n'y a pas d'avenant, on ouvre le formulaire qui listera les commandes associées au contrat. Garde à l'esprit qu'un formulaire peut avoir aussi en source une requête enregistrée dans access ou une chaine SQL que tu peux mettre à jour en fonction des informations que tu souhaites afficher.
__________________
Access : Les Cours, Les Sources et Les FAQs Office Avant de poster : les choses importantes à lire pour la bonne tenue du forum.sinon Ma boite à MPs n'est pas l'annexe du forum |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 133 ![]() |
J'ai bien compris ce que tu as dit
Malgré ça, quand on lie les tables Avenant et Commande, je ne vois pas trop comment peut-on créer une commande à partir d'un avenant existant ? Ce n'est pas très clair dans ma tète :s |
|
|
00
|
|
|
#11 |
![]() ![]() |
L'IHM que je t'ai proposé repose sur le fait que l'on a une seule table pour les commandes et les avenants.
On est d'accord ? Donc pour créer une commande sur un avenant existant : quand tu vas ouvrir le formulaire listant les commandes associées à l'avenant (et j'avoue, je n'ai pas détaillé ce que j'y mettrai) tu auras, comme pour le formulaire contrat, un sous formulaire qui listera les commandes associées, avec 3 boutons là encore : ajouter/supprimer/modifier (dans mon message précédent j'ai noté créer/supprimer/ajouter )
__________________
Access : Les Cours, Les Sources et Les FAQs Office Avant de poster : les choses importantes à lire pour la bonne tenue du forum.sinon Ma boite à MPs n'est pas l'annexe du forum |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 133 ![]() |
On est d'accord tous les deux.
Si je garde le même schéma : Contrat - Avenant - Commande et que je veux créer un contrat-commande, aurais-tu une solution à me proposer ? Merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com