|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | |
|
Nouveau Membre du Club
![]() Emmanuel Inscription : janvier 2011 Messages : 210 ![]() |
Bonjour,
Suivant le conseil de F-leb, je viens demander des conseils pour réaliser le projet suivant : Citation:
exemple : Engin : VSAV Fonction : CA (chef d'agrès) - Cond - Eq.1 (équipier ) - Eq.2 (équipier) Les compétences : catégorie : SP - SPP - SPV Grade : HDR - S/OFF - OFF FIA : FIA semaine 2 - ..... - FIA semaine 6 Permis : Permis B - Carte blanche - PL validé Avancement : Chef d'équipe - CA semaine 2 - .... - CA semaine 4 - GOC 3 FMA : FMA RAD - FMA ARI - FMA SAP Spécialités : FDF 1 - FDF2 - RAD1 - RAD2 - COD1 - COD2 L'idéal serait d'attribuer ces compétences par SP via des cases à cocher.. Ensuite les engins :, il existe des niveaux par fonction VSAV (Ambulance)/CA (chef d'agrès) Niveau 1 : SP - FMA SAP - FMA ARI - S/OFF - CA semaine 2 Niveau 2 : SP - FMA SAP - FMA ARI - HDR - CA semaine 2 il y a 6 niveaux pour cette fonction J'aimerais qu'en rentrant les compétences de chacun, ça me donne leurs niveaux par fonction, en prenant le niveau le plus haut ( 1 en priorité ) Voilà merci d'avance pour votre aide |
|
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
Perso, je ne ferais qu'une seule table avec des champs booleens pour les compétences, puisque selon ce que tu nous donnes, les compétences sont fixées et leur nombre ne semble pas devoir évoluer. Tu peux toujours ajouter une table autres pour les compétences que ne sont pas prises en compte dans la première table.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#3 | |||||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
Bonjour,
Citation:
Il sera toujours temps de revenir (légèrement) sur le modèle pour la construction des formulaires si nécessaire (en introduisant à petites doses des champs multi-valués par exemple, ou bien rajouter des booléens comme le suggère Heureux-oli, à voir). Une table pour les compétences : Competence(idCompetence, LibelleCompetence,…) LibelleCompetence= SP, SPP,…, HDR,…, FIA semaine 2,…, Permis B,…, FDF1,FDF2,… Toutes les compétences sont dans le même sac, par contre il faut les typer. TypeCompetence (idTypeCompetence, LibelleTypeCompetence) LibelleTypeCompetence= Catégorie, Grade, FIA, Permis, Avancement, FMA, Spécialité,… Chaque compétence a donc un type : Competence-∞---------1-TypeCompetence Les SP obtiennent des compétences au fur et à mesure des stages : SP-1-------∞-AvoirCompetence-∞-------1-Competence Une table pour les fonctions : Fonction(idFonction, LibelleFonction) LibelleFonction= CA, … Il faut associer les engins et les fonctions (je suppose qu’il y a plusieurs fonctions par engin et qu’une même fonction peut exister sur différents engins. Par contre, toutes les combinaisons Fonction/engin ne sont pas possibles). Soit, Fonction-1------∞-FonctionEngin-∞-------1-Engin J’ai fait une table Rang avec NumeroRang=1, 2, …,6 qui pourra servir par la suite, à voir. Je reprends ton exemple : Citation:
Supposons que VSAV (Ambulance)/CA (chef d'agrès) corresponde au couple (idEngin,idFonction)=(1,1). La table Niveau aura l’allure suivante (j’ai rajouté la correspondance de l’identifiant avec le libellé de la compétence entre parenthèses): Code :
Au lieu d’avoir 40 tables pour chaque Fonction/Engin avec 6 lignes chacune, tu auras une unique table avec environ 30 lignes par Fonction/Engin. Pour les 40 Fonction/Engin, la table comportera environ 40x30= 1200 lignes. Il faudra sans doute prévoir un traitement qui peuplera cette table comme il faut à partir des tableaux dont tu disposes (fichier, tableau Excel,…). Citation:
C.a.d rechercher par pompier, tous les triplets (idFonction, idEngin, NumeroRang) où l’on retrouve toutes les compétences du pompier et ne conserver que le niveau le plus haut. Je mets un fichier .mdb en pièce-jointe. Le premier qui trouve la rasta-requête …
|
|||||
|
20
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
bonsoir,
en attendant le retour de notre sapeur, je propose une requête qui, par sapeur-pompier et par engin/fonction, retourne les rangs possibles correspondant à ses compétences (enfin je pense… à tester). Code sql :
![]() Par exemple, le matricule n°140000 dispose des compétences requises pour les rangs 2 et 4. Si on veut conserver le rang le plus haut, il faut encore reprendre la requête précédente en opérant un groupement sur idSP, idFonction, idEngin avec une opération Min sur NumeroRang. |
||
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Emmanuel Inscription : janvier 2011 Messages : 210 ![]() |
Désolé pour mon absence, j'étais parti en week end prolongé....
Tout d'abord merci pour votre travail c'est énorme. De mon côté, j'ai réfléchi à 2-3 choses avec le peu de connaissance en ACCESS que j'ai.... Pour les compétences, il n'est peut etre pas nécessaire de les classer par type (catégorie, grade...), une table connaissance peut faire l'affaire. ??? Ensuite, pour chercher les compétences par SP, est qu'une requete de sélection par compétences ( compétence : SP ) serait plus facile pour trouver les niveaux par fonction ??? Exemple :recherche dans la requete SP, recherche dans la requete .... Merci d'avance |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
bonjour manusp,
Citation:
![]() Étant donné que j’ai mis toutes les compétences en ligne, il faut bien que notre système sache que HDR est un grade, que Permis B est un permis, etc…, si tu veux reproduire ce type de formulaire, non ? ![]() Citation:
. Pour les compétences par SP, il suffit de faire une requête sur les tables jointes SP----AvoirCompetence----Competence avec l’assistant Requête…Note que pour faciliter la construction de l’IHM, tu peux raisonnablement revenir aux champs multi-valués sur lesquels tu étais parti et remplacer le schéma : SP-1-----∞-AvoirCompetence-∞------1-Competence par SP-∞-------1-Competence, avec un champ SP.idCompetence autorisant plusieurs valeurs. Dans ce cas, pour utiliser la requête de mon message précédant, il faut un traitement supplémentaire et reconstituer la "vue" AvoirCompetence : AvoirCompetence : Code sql :
SELECT SP.idSP, SP.idCompetence.value FROM SP ; |
||
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Emmanuel Inscription : janvier 2011 Messages : 210 ![]() |
Bonjour,
Vous trouverez ci joint ma base de donnée... Au niveau des tables : 1°) Table Sp 2°) Table grade ( HDR - S/OFF - OFF ) 3°) Table catégorie ( Sp - SPP - SPV ) 4°) Table compétences ( le reste des compétences ) Ensuite la table Engin VSAV/CA est construite via un formulaire double affichage ( mais ça pour le moment c'est pas important ). Pour donner mes compétences, grades et catégories à mes SP je compte toujours garder le principe de case à cocher frmcompétences. Voilà maintenant est ce que c'est plus simple comme ça ? Ou est ce qu'il fait reprendre les champs multi-valués ? En tout cas, merci encore une fois pour votre aide |
|
|
00
|
|
|
#8 | |||||||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
Bonsoir manusp,
Citation:
Séparer grade et catégorie des autres compétences et mettre des compétence1, compétence2, compétence3… dans la table Engin VSAV/CA ne vont pas faciliter la tâche de recherche des rangs (entre autres). Note que la rasta-requête du message #4 n’est déjà pas des plus simples mais elle répond apparemment au besoin en une quinzaine de lignes de code SQL. Sur les champs multi-valués, j’ai répondu : Citation:
Tu peux davantage empiéter en remplaçant aussi ma table Niveau : Citation:
Niveau_Version2: Code :
avec le champ idCompetences autorisant plusieurs valeurs. Ce qui permet de facilement construire un formulaire avec des cases à cocher mais il faudra encore une requête supplémentaire pour remettre les compétences en lignes avant d’utiliser celle du post #4 : Niveau : Code sql :
SELECT idEngin, idFonction, idCompetences.value, NumeroRang FROM Niveau_Version2 Si tu ne gère pas toute la brigade de Sapeurs-Pompiers de Paris, ça devrait encore le faire… Il manque encore quelques morceaux pour avoir fromage&dessert mais cela concerne davantage les cadors du s/forum IHM d’Access qui ne manqueront pas de t’aider à construire tes formulaires si nécessaire. Il y a encore un peu de chemin, courage… |
|||||||
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Emmanuel Inscription : janvier 2011 Messages : 210 ![]() |
Bonjour,
Le dernier fichier envoyé serait le plus approprié au résultat final, même si je comprends la difficulté du système de programmation. Vous avez une solution ?? |
|
|
00
|
|
|
#10 | |||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
bonsoir,
Citation:
Citation:
que je n’arrive pas à expliquer mais bon… J’ai réussi quand même à contourner le problème pour finalement arriver au résultat (voir la requête R_CalculRang).Citation:
A toi de faire ton choix … |
|||
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Emmanuel Inscription : janvier 2011 Messages : 210 ![]() |
J'ai travaillé avec votre version 2 qui me convient parfaitement...
J'ai juste un souci, j'ai entré une nouvelle fonction, lorsque je regarde dans la requete de recherche de rang ça ne donne pas les bons niveaux .... |
|
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
Damned!! Faut qu'on s'occupe de ça!
Tu peux joindre un autre fichier zippé avec cette nouvelle fonction ? |
|
10
|
|
|
#13 |
|
Nouveau Membre du Club
![]() Emmanuel Inscription : janvier 2011 Messages : 210 ![]() |
Bonjour,
Voici en retour le fichier compressé. J'ai ajouté des compétences pour la fonction VSAV/COND Merci |
|
|
00
|
|
|
#14 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
euhhh certes, je m'y perd un peu dans toute ces données...
Il faudrait que tu m'aides à comprendre...En quoi la requête "ne marche pas" ? Qu'est ce que la requête devrait retourner ? |
|
00
|
|
|
#15 |
|
Nouveau Membre du Club
![]() Emmanuel Inscription : janvier 2011 Messages : 210 ![]() |
Il faudrait que la requête me donne les rangs pour les rangs Id fonction1 , 2 etc...
exemple : Matricule - Id Fonction 1 - Id Fonction 2..... 140058 - 2 - 1 140009 - 1 - 2 140029 - 5 - 5 Voilà ce que devrait afficher ma requête... |
|
|
00
|
|
|
#16 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
bonsoir,
et comme ça ? (requête R_final) |
|
10
|
|
|
#17 |
|
Nouveau Membre du Club
![]() Emmanuel Inscription : janvier 2011 Messages : 210 ![]() |
En un mot "PARFAIT"
Je me suis "amusé" à modifier des compétences par SP et le résultat est bien le bon !!! Par contre, est-il possible de créer un journal des évènements ou un historique des modifications de niveaux pour mes SP ??? |
|
|
00
|
|
|
#18 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
bien bien, ça progresse
![]() Aïe, ça aurait été mieux de le prévoir dès le départ. On va essayer de rattraper le coup mais il faudrait détailler ce que tu souhaites exactement (avec des exemples d'évènements). |
|
00
|
|
|
#19 |
|
Nouveau Membre du Club
![]() Emmanuel Inscription : janvier 2011 Messages : 210 ![]() |
Oui il est vrai que je n'avais pas pensé à ça..
En fait, l'idéal serait que j'insère dans mon formulaire d'Ajout ou de modification de compétences, une fenêtre avec les infos suivantes : Nom - Prénom - Ancienne compétence - nouvelle compétence - date/heure Tout cela sous forme d'historique |
|
|
00
|
|
|
#20 | ||||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
Par exemple avec les nouvelles tables Evenement et DetailEvenement,
Evenement(idEvent, #idSP, DateEvent, motifEvent, ...) DetailEvenement(idDetailEvent, #idEvent, TypeEvent, #idCompetence) Evenement-1-----∞-DetailEvenement-∞------1-Competence Par exemple: Code :
Code :
le 05/03/2011, le SP n°2 a acquis la compétence n°5. Il est bien entendu que le champ multi-varié idCompetences de la table SP, comprend les compétences en cours. |
||||
|
00
|
Copyright © 2000-2012 - www.developpez.com