Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/08/2007, 14h23   #1
Invité de passage
 
Inscription : mai 2007
Messages : 133
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 133
Points : 4
Points : 4
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^^
ade94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h35   #2
Rédacteur
 
Avatar de Lou Pitchoun
 
Christophe Lessirard
Inscription : février 2005
Messages : 5 029
Détails du profil
Informations personnelles :
Nom : Christophe Lessirard
Âge : 33
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 5 029
Points : 6 000
Points : 6 000
Envoyer un message via MSN à Lou Pitchoun
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 Le complément BouleDeCristal n'existe pas encore !!!
Lou Pitchoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h42   #3
Invité de passage
 
Inscription : mai 2007
Messages : 133
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 133
Points : 4
Points : 4
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 ?
ade94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h47   #4
Rédacteur
 
Avatar de Lou Pitchoun
 
Christophe Lessirard
Inscription : février 2005
Messages : 5 029
Détails du profil
Informations personnelles :
Nom : Christophe Lessirard
Âge : 33
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 5 029
Points : 6 000
Points : 6 000
Envoyer un message via MSN à Lou Pitchoun
Citation:
Envoyé par ade94 Voir le message
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 ?
pourquoi rajouter ce lien ???

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 Le complément BouleDeCristal n'existe pas encore !!!
Lou Pitchoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h53   #5
Invité de passage
 
Inscription : mai 2007
Messages : 133
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 133
Points : 4
Points : 4
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
ade94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 15h01   #6
Rédacteur
 
Avatar de Lou Pitchoun
 
Christophe Lessirard
Inscription : février 2005
Messages : 5 029
Détails du profil
Informations personnelles :
Nom : Christophe Lessirard
Âge : 33
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 5 029
Points : 6 000
Points : 6 000
Envoyer un message via MSN à Lou Pitchoun
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 Le complément BouleDeCristal n'existe pas encore !!!
Lou Pitchoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 15h15   #7
Invité de passage
 
Inscription : mai 2007
Messages : 133
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 133
Points : 4
Points : 4
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.
ade94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 15h31   #8
Invité de passage
 
Inscription : mai 2007
Messages : 133
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 133
Points : 4
Points : 4
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).
ade94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 15h47   #9
Rédacteur
 
Avatar de Lou Pitchoun
 
Christophe Lessirard
Inscription : février 2005
Messages : 5 029
Détails du profil
Informations personnelles :
Nom : Christophe Lessirard
Âge : 33
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 5 029
Points : 6 000
Points : 6 000
Envoyer un message via MSN à Lou Pitchoun
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 Le complément BouleDeCristal n'existe pas encore !!!
Lou Pitchoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 15h57   #10
Invité de passage
 
Inscription : mai 2007
Messages : 133
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 133
Points : 4
Points : 4
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
ade94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 16h15   #11
Rédacteur
 
Avatar de Lou Pitchoun
 
Christophe Lessirard
Inscription : février 2005
Messages : 5 029
Détails du profil
Informations personnelles :
Nom : Christophe Lessirard
Âge : 33
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 5 029
Points : 6 000
Points : 6 000
Envoyer un message via MSN à Lou Pitchoun
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 Le complément BouleDeCristal n'existe pas encore !!!
Lou Pitchoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 13h02   #12
Invité de passage
 
Inscription : mai 2007
Messages : 133
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 133
Points : 4
Points : 4
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
ade94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h46.


 
 
 
 
Partenaires

Hébergement Web