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 10/05/2007, 13h49   #1
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
Par défaut Problème de relations

Bonjour, je suis actuellemnt en stage dans une entreprise et je dois réaliser une base de données, celle ci concerne les formations qu'a reçu le personnel.
Elle servira à établir toute formation que chaque employé a reçu par rapport à son métier; sachant qu'un employé peut avoir plusieurs métiers et que chaque métiers peut avoir plusieurs formations.
Ayant juste eu une formation de base pour Access et m'y connaissant très peu en programmation, j'espère que quelqu'un pourra m'aider.
Voilà ci aprés ce que j'ai fait pour l'instant.
81595147120070510133608.png
Cela correspond presque à ce que je voudrais faire, cependant je ne sais pour quel raison quand je veux mettre NumEmploye et Metier (dans la table Employe/Metier) ensemble en clé primaire Access ne le permet pas. Je ne sais plus trop comment faire
Merci à ceux qui voudront bien m'accorder un peu de leur temps.
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 14h34   #2
Membre éprouvé
 
Inscription : mai 2006
Messages : 661
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 661
Points : 462
Points : 462
Salut,

Hum, je pense qu'il n'y a aucune clef primaire à mettre dans ta table qui fait la "jonction" entre les deux.

Un petit conseil, fait attention aux symboles que tu utilises dans les noms de tes tables.
Personnellement, je ne m'aventurerais pas avec des "/" dans le nom des tables. C'est d'ailleurs la même chose avec les espaces et les accents.

Je serais parti comme ça moi :

Tables :

tbl_employe : Matricule / ...
tbl_metier : Idx_Metier / num_metier / ... / Matricule
tbl_intitule_metier : num_metier / intitule_metier / etc ...
tbl_formation : Idx_formation / num_formation / ... / Idx_Metier
tbl_intitule_formation : num_formation / intitule_formation / ....

Relations :

tbl_employe 1 <---> infini tbl_metier 1 <---> infini tbl_formation
et
tbl_formation infini <---> 1 tbl_intitule_formation
tbl_metier infini <---> 1 tbl_intitule_metier

En français :

Un employé peut avoir plusieurs métiers qui eux même peuvent avoir plusieurs formations.

Une formation peut avoir un seul intitulé, mais un intitulé peut appartenir à plusieurs formations dispensées.
Idem pour les métiers.
Herman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 14h59   #3
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
Voilà, j'ai retiré les "/"
Cependant je ne sais pas si tu as bien saisi ce que je veux faire car jene comprends pas ceci :
Citation:
Une formation peut avoir un seul intitulé, mais un intitulé peut appartenir à plusieurs formations dispensées.
Idem pour les métiers.
C'est faux, une formation n'a qu'un intitulé et un intitulé n'a qu'une seule formation.

http://www.enregistrersous.com/image...0510144732.png
Le problème que j'ai ici est que je n'arrive pas à créer le lien entre ma table EmployeMetier et MetierFormation
En fait j'aimerais que quelqu'un m'explique comment créer deux relations plusieurs à plusieurs consécutives (dans mon cas un employé qui a plusieurs métiers et le métiers qui a lui même plusieurs formations)

Voila désolée de n'avoir pas bien expliquer
et merci de votre aide
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 15h05   #4
Membre éprouvé
 
Inscription : mai 2006
Messages : 661
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 661
Points : 462
Points : 462
Attention ! Je n'ai pas dis :

Citation:
Envoyé par Misato
un intitulé n'a qu'une seule formation.
J'ai dis :

Citation:
Envoyé par Herman
un intitulé peut appartenir à plusieurs formations dispensées.
Ce qui est tout à fait logique puisqu'une formation va pouvoir être dispensées à 50 personnes. On en revient bien à ma phrase : un intitulé (Formation "Sauvetage de Personnes") peut appartenir à plusieurs formations dispensées (formation dispensées à 50 personnes).

Pour ce problème :

Citation:
Envoyé par Misato
En fait j'aimerais que quelqu'un m'explique comment créer deux relations plusieurs à plusieurs consécutives
D'après ce que j'ai cru comprendre, il ne s'agit pas de deux relations plusieurs à plusieurs, mais de deux relations 1 à plusieurs. Tu le dis toi même :

Citation:
Envoyé par Misato
un employé qui a plusieurs métiers et le métiers qui a lui même plusieurs formations
Herman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 15h17   #5
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
Citation:
D'après ce que j'ai cru comprendre, il ne s'agit pas de deux relations plusieurs à plusieurs, mais de deux relations 1 à plusieurs.
ok et donc comment je peux faire ça?
car il faut que les formations soit liées à l'employé ainsi qu'au métier
Désolée je m'exprime sûrement mal u__u
Employé=Plusieurs métiers
Métiers = plusieurs formations
Employé = plusieurs formations par rapport au métier
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 15h37   #6
Membre éprouvé
 
Inscription : mai 2006
Messages : 661
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 661
Points : 462
Points : 462
Citation:
les formations soit liées à l'employé
Code :
Employé = plusieurs formations par rapport au métier
Les formations sont liées à l'employés ? où au métier xD C'est un des deux mais pas les deux à la fois.

D'après ce que j'ai compris, un employé pourra avoir plusieurs métiers, et à chacun de ses métiers il pourra faire plusieurs formations différentes à chaque fois ? Je me trompe pas, si ?

Si je ne me trompe pas, je te renvoie à ce que j'ai écris plus haut.

tbl_employe : Matricule (clef primaire) / ...
Dans la table employé, tu stockera le nom des employés, etc etc .. Chaque employé à un numéro de matricule unique (clé primaire)

tbl_metier : Idx_Metier (clef primaire) / num_metier / ... / Matricule
Tu va ici faire le lien entre la table employé et la table tbl_metier avec le matricule.
Et tu va aussi associer cette table avec la table tbl_intitule_metier via le champs num_metier. Il te sera plus facile d'ajouter et d'enlever des métiers comme ça. (dans la table tbl_intitule_metier dans laquelle tu rentre un listing des metiers tout simplement).
Dans cette table, tu associera donc des matricules à des num_metier, en français ça donne : Pour une personne, tu lui attribue un ou plusieurs métiers.

tbl_formation : Idx_formation (clef primaire) / num_formation / ... / Idx_Metier
Même principe avec cette table. Tu la lies avec tbl_metier via le champs Idx_metier. Et tu la lies avec tbl_intitule_formation via le champs num_formation.
Tu auras dans cette table le listing des formations effectuées pour une personne dans un métier précis.
Herman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 15h41   #7
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
hum c'est parce que sur cahque formation je vais avoir des dates, date à laquelle la formation aura été effectué et la date à laquelle la formation devra se réitéré.
Ces dates correspondent à une formation par rapport à un employé précis
voilà
je ne sais pas si ça change quel que chose à ce que vous avez dis juste au dessus donc je vais essayer comme vous avez dit en rajoutant les champs pour les dates.
Merci beaucoup
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 15h45   #8
Membre éprouvé
 
Inscription : mai 2006
Messages : 661
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 661
Points : 462
Points : 462
En fait, si tu regardes bien, étant donné que tu passes par la table tbl_metier, ta formation correspond obligatoirement à un employé ! Et même mieux, ta formation correspond à un métier précis de ton employé.

Donc les dates ne génent en rien. Une formation sera caractérisé par Idx_formation / num_formation (lien avec la table tbl_intitule_formation) / date_effectue / date_reiterer .

Prenons un exemple avec 2 employés :

Contenu de la table tbl_employé :

Matricule | Nom
1 | Dupont
2 | Durand

Contenu de la table tbl_intitule_metier:
Num_metier | intitule_metier
1 | Plombier
2 | Macon

Contenu de la table tbl_intitule_formation:
Num_formation | intitule_formation
1 | Comment monter un tuyau (formation de plombier)
2 | Comment démonter un tuyau (formation de plombier)
3 | Comment monter à une échelle (formation de maçon)

Maintenant, on va dire que Dupont est plombier ET Macon, et que Durand est simplement maçon. Dupont (matricule 1) va donc suivre TOUTES les formations, alors que Durand (Matricule 2) ne suivra que la dernière. Si on prend déjà la table métier pour leur associer leur métier, on aura :

Contenu de la table tbl_metier:
Idx_metier (num_auto) | num_metier | Matricule
1 | 1 | 1
2 | 2 | 1
3 | 2 | 2

Dupont (matricule 1) est bien plombier (num_metier 1) ET maçon (num_metier 2), tandis que Durand (matricule 2) est juste maçon (num_metier 2).

si on passe maintenant aux formations, on aura :

Contenu de la table tbl_formation:
Idx_formation (num_auto) | num_formation | Idx_metier
1 | 1 | 1
2 | 2 | 1
3 | 3 | 2
4 | 3 | 3

On a bien Dupont/plombier (Idx_metier 1) qui suit la formation 1 et 2, Dupont/Maçon (idx_metier 2) qui suit la formation 3, et Durand/Maçon (idx_metier 3) qui suit la formation 3.
Herman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 15h54   #9
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
euh j'ai encore une question (question bête) :
Qu'est ce que je mets dans les champs idx metiers et idx formations ? ce sont des numéros auto ?
: x
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 15h57   #10
Membre éprouvé
 
Inscription : mai 2006
Messages : 661
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 661
Points : 462
Points : 462
Oui voila tu met des num_auto.

PS : lis mon post précédent où j'écris un long exemple qui devrait t'être plus parlant, je l'ai posté juste après que tu en ai posté un donc tu as pas du le voir.
Herman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 16h06   #11
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
D'accordje vais essayer comme ça !
Merci beaucoup ! je te donne des nouvelles demain
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 09h16   #12
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
J'ai un problème! Alors ça marche très bien sauf avec les dates, J'ai fait une table avec Metier, Formation, datedeb,dateFin avec les liens que vous avez dit plus haut; cependant quand j'entre une date il me remet la même pour les autres employés qui ont la même formation, je voudrais qu'il l'enregistre par employé...
Merci à ceux qui peuvent m'aider
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 10h35   #13
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
Alorsen fait j'avais pas très bien compris ! mais maintenant ça y est ! j'ai tout fait comme tu as dit ! et j'ai encore une question : est ce qu'il n'y aurait pas moyen de créer un lien entre metier et formation de telle sorte que lorsque j'entre un métier les formations correspondant à ce métier apparaissent ?
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 11h46   #14
Membre éprouvé
 
Inscription : mai 2006
Messages : 661
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 661
Points : 462
Points : 462
Tu peux très bien créer une table en plus que t'appellera tbl_metier_formation (trop bien comme nom !!! xD) et qui fera le lien entre les tables tbl_intitule_metier et tbl_intitule_formation.

Dans cette table tu met un Idx, et tu met un champs num_metier et un champs num_formation (ces champs sont liés au champs correspondant de tbl_intitule_metier et tbl_intitule_formation).

Et via un formulaire, tu fait les associations pour qu'à un métier correspondent des formations.
Herman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 16h20   #15
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
euh j'y arrive pas... ça ne marche pas
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 14h29   #16
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
euh ça ne marche pas du tout comme je veux
Le lien qu'il y a entre metier et formation est totalement inutile
et je crois que ça empirer comparé à avant
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 14h35   #17
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
Alors voilà c'est ça qu'il fallait que je fasse :
http://www.enregistrersous.com/image...0516143336.png
?
mais ça ne marche pas comme je veux, à moins que je l'ai mal fait
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 14h47   #18
Membre éprouvé
 
Inscription : mai 2006
Messages : 661
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 661
Points : 462
Points : 462
Si tu avais lu ça :

Citation:
Envoyé par Herman
Relations :

tbl_employe 1 <---> infini tbl_metier 1 <---> infini tbl_formation
et
tbl_formation infini <---> 1 tbl_intitule_formation
tbl_metier infini <---> 1 tbl_intitule_metier
Tu aurais compris que ce que t'as fait n'est pas bon.

tbl_employe 1 <---> infini tbl_metier 1 <---> infini tbl_formation

tbl_employe est relié à tbl_metier qui lui même est relié à tbl_formation. Est ce que dans ton schéma tbl_metier est relié à formation ? Non. Tu as d'ailleurs très bien créé le champs IdxMetier dans tbl_formation, pourquoi est ce que t'es embété à passer par 4 tables pour relier tbl_metier et tbl_formation ?? Une simple liaison suffisait.

tbl_metier infini <---> 1 tbl_intitule_metier
tbl_metier est relié à tbl_intitule_metier. Est ce que dans ton schéma tbl_metier est relié à tbl_intitule_metier ? Non plus.

A partir de là, forcement, ça marche pas bien
Herman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 15h10   #19
Invité de passage
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 3
Points : 3
comme ça alors ?
http://www.enregistrersous.com/image...0516150949.png
Misato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 15h31   #20
Membre éprouvé
 
Inscription : mai 2006
Messages : 661
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 661
Points : 462
Points : 462
ah bah voilà, ça va déjà mieux marcher comme ça. Par contre ta table emplye_1 au milieu tu peux la virer
Herman 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 03h34.


 
 
 
 
Partenaires

Hébergement Web