|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 661 ![]() |
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. |
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
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:
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 |
|
|
|
00
|
|
|
#4 | ||||
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 661 ![]() |
Attention ! Je n'ai pas dis :
Citation:
Citation:
Pour ce problème : Citation:
Citation:
|
||||
|
|
00
|
|
|
#5 | |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
Citation:
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 |
|
|
|
00
|
|
|
#6 | |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 661 ![]() |
Citation:
Code :
Employé = plusieurs formations par rapport au métier
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. |
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
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 |
|
|
00
|
|
|
#8 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 661 ![]() |
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. |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
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 |
|
|
00
|
|
|
#10 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 661 ![]() |
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. |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
D'accordje vais essayer comme ça !
Merci beaucoup ! je te donne des nouvelles demain |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
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 |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
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 ?
|
|
|
00
|
|
|
#14 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 661 ![]() |
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. |
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
euh j'y arrive pas... ça ne marche pas
|
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
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 |
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
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 |
|
|
00
|
|
|
#18 | |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 661 ![]() |
Si tu avais lu ça :
Citation:
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 |
|
|
|
00
|
|
|
#19 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 45 ![]() |
comme ça alors ?
http://www.enregistrersous.com/image...0516150949.png |
|
|
00
|
|
|
#20 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 661 ![]() |
ah bah voilà, ça va déjà mieux marcher comme ça. Par contre ta table emplye_1 au milieu tu peux la virer
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com