IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

Suivre les différentes formations d'un même agent


Sujet :

Modélisation

  1. #1
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Monaco

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2016
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Suivre les différentes formations d'un même agent
    Bonjour à tous,

    Après avoir lu 2-3 topics d'aide, et plutôt que d'essayer de transposer le problèmes des autres par rapport au mien, je préfère poser la question directement.

    Donc derrière ce titre énigmatique se cache en fait un problème simple :

    J'ai une liste d'agent qui ont fait diverses formations. Et si je suis capable d'assigner à un agent la formation qu'il a fait au travers de 2 tables (une pour l'agent, une contenant les formations), je n'arrive pas à résoudre le problème lorsque différents agents réalisent la même formations, que ce soit lorsqu'il s'agit de leur première, deuxième ou troisième formation.

    Concrètement, j'ai une table *Formations des agents en CEA*, qui contient Nom/Prénom/F1/F2... (nb de formations)
    Et une table * les différentes formations*, qui contient la liste de toute les formations possibles.

    Mon problème, c'est par exemple :
    Camille DEMORE qui fait la formation 1 (F1) *Itinéraire animateur - blabla* et lorsque par exemple Merwan BOUZID fait lui aussi cette même formation en F2.
    En effet, si une seule table (F1) est relié à la table des formations, en déroulant le petit +, j'ai bien les noms des personnes qui ont fait telle formation, mais si j'ajoute f2-f3 etc. cela ne marche plus.

    Une solution ?

    Ici le fichier pour que vous voyez, j'espère que vous arriverez à le télécharger. L'objectif est donc de relier les tables F1/F2/F3... au même champs de formation. Bon courage, et merci
    https://onedrive.live.com/redir?resi...E1344E72%21113

    Edit : je viens de voir que c'est mal vu de joindre le fichier lors de la création de discussion. Pardonnez-moi, je pensais que justement c'était un plus. D'autant plus que j'ai eu du mal à le faire dans la mesure ou l'ordi qui possède Access n'a pas internet, j'ai du l'envoyer par mail, mais en fait les ordis du bureau bloquent les pièces jointes ainsi que la plupart des hébergeurs, etc, bref désolé !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Tu as un problème de structure. Tu as monté ta base Access comme une feuille Excel et Access ne fonctionne pas bien avec ce genre de structure.

    La solution habituelle est :

    tblAgent
    ClefAgent
    Nom
    Prenom
    Autres infos

    tblFormation
    ClefFormation
    Decsription
    Autres infos

    tblFormationAgent
    ClefFormationAgent (clef primaire)
    clefAgent
    CleFormation
    DateHeureFormation
    Autres infos

    Avec :

    • Relation avec tblAgent sur ClefAgent
    • Relation avce tblFormation sur ClefAgent
    • Index unique composé : clefAgent, ClefFormation, DateHeuerFormation. Assure que tu n'as pas 2 fois la même formation pour la même personne à la même date.


    Cette structure te permet d'avoir un nombre variable de formations et des répétitions si la personne fait plusieurs fois la même formation. Il est aussi TRÈS facile d'avoir la liste des formations qui ont été suivies.

    Elle a les inconvénients suivants :
    1. Il faut faire des accrobaties pour permettre une saisie en tableau :
      • Transformer les listes en tableau puis l'inverse.
      • Et pendant que tu es en "tableau", Access ne gère plus les conflits d'accès aux données.


      ou

      • Présenter les données dans une requête croisée dynamique.
      • Ouvrir un formulaire qui pointe sur les données correspondant à la cellule.
        C'est faisable mais un peu compliqué et pas très ergonomique :-(.

    2. Si tu veux avoir un "planning" de formations, il faut créer les enregistrements pour chacune des formations.
      Un peu de VBA ou une requête d'ajout résolvent le problème mais ce n'est pas aussi confortable qu'un enregistrement qui contient toutes les formations.
    3. Il est un peu plus difficile de présenter la liste complète des formations et d'indiquer si elles ont été suivies ou pas.


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Monaco

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2016
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut à toi, et merci pour ta réponse. Malheureusement, c'est quand je vois ta réponse que je me rend compte que je maitrise très peu Access.

    Quelles doivent être précisément les relations à établir entre les différentes tables ? Je t'avoue ne pas trop comprendre la partie où tu me dis :

    • Relation avec tblAgent sur ClefAgent
    • Relation avce tblFormation sur ClefAgent
    • Index unique composé : clefAgent, ClefFormation, DateHeuerFormation. Assure que tu n'as pas 2 fois la même formation pour la même personne à la même date.


    Merci pour ta patience en tout cas

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Pas de problème.

    Dans Access tu peux dire que des éléments que tu utilises appartiennent à une liste de référence. On appelle cela une relation. Dans une petite application ce n'est pas forcément obligatoire mais dans un plus grosse (plus de 5 tables) cela aide à voir comment les ensemble d'éléments (appelés Entités) s'agencent entre elles.

    Si on veut garantir que les éléments que tu entres sont bien des éléments autorisés on applique sur cette relation une contrainte d'existence et on appelle cela une relation d'intégrité ou intégrité relationnelle.

    Un index unique est un moyen d'identifier des données de façon non équivoque. C'est celle-ci et pas un autre.
    En France, par exemple le numéro de sécurité social identifie de manière unique chacun des inscrits.
    Un index unique composé est un index unique constitués de plusieurs champs.
    Dans ton cas, je suggère clefAgent, ClefFormation, DateHeureFormation.

    Pour créer un index, dans l'écran de conception de la table, il faut appuyer sur l'icône avec un éclair.
    Dans l'écran qui apparaît dans la colonne de gauche mettre un truc du genre "Unicite" et choisir dans la colonne à droite les champs (une ligne par champ) qui compose l'index.
    En bas de l'écran cocher "unique".

    Pour les relations, il faut ouvrir la fenêtre des relations (dans outils de base données).
    Ajouter les tables à mettre en relation (Agent, Formation, AgentFormation).
    Après tu cliques le champ identifiant (dans mon exemple ClefAgent) de la table de référence (ex : Agent) et tu le glisse vers le champ la table d'association (AgentFormation).
    Après tu coches "Appliquer l'intégrité référentielle" et "Modifier en cascade". La 3ième case à cocher "Supprimer en cascade" est à manipuler avec discernement, si tu la coches et que tu supprimes un agent, toutes les formations qu'il aura suivies seront supprimées de la table AgentFormaton.

    J'espère avoir été clair sans être trop jargoneux :-).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Monaco

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2016
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut à toi, et merci pour ta réponse.

    Évidement où je travail, seul un ordi portable qui sert pour les formations (justement) possède Access, et évidemment depuis hier et aujourd'hui, le service RH est en formation, et a réquisitionner le PC portable, je n'ai plus accès à Access (lol), je le récupère demain.

    L'histoire des relations entre les tables, je pense avoir à peu près compris, du moins à petit niveau.
    Si par exemple tu regardes mon fichier, la table principale des Agents est en relations avec d'autres tables (contrat, heures, fonctions, services).
    J'ai donc bel et bien compris ce système dans ce sens là. Ainsi, lorsque je prend ma table Fonctions, et que je déroule le petit + des Animateur par exemple, je vois toutes les personnes qui sont Animateurs. Et je cherche à faire la même chose pour les formations

    J'ai alors réalisé une table avec l'ensemble des formations proposés pour mes contrats CEA, et j'ai rajouté des colonnes Formation 1 F2 F3... à ma table d'agent, le but étant que :
    Agent 1 fasse la Formation Blabla A en F1, la Formation Blabla B en F2, etc.
    Agent 2 fasse la Formation Blabla B en F1, la Formation Blabla A en F2, etc.

    Pas tous les agents ont suivis les mêmes formations, et il était intéressant de savoir quel Agent a fait quelle Formation, à Quelle Date, sa présence, si la formation fait parti du CNFPT, etc
    Ces infos se trouvent normalement en déroulant le petit + d'une formation une fois la relation faite et les formations des agents mises dans les champs, mais avec plusieurs champs de formation pour chaque agent, et des agents qui font plusieurs fois la même formation en F2 ou F3 etc., cela ne marche plus.

    J'espère avoir été plus clair, je testerais ta solution proposé au premier post, mais de mémoire mes tables étaient comme cela :

    Table Agents contrat CEA
    Id_Agent
    Prénom
    Nom
    Fonction
    Formation 1
    F2
    F3 [...] F8

    Table Ensemble des formations
    Id_Formation
    Nom de la formation
    Durée Heures
    Durée Jours
    Date
    Présence de l'Agent
    Organisme (CNFPT ou pas)

    Là dessus j'ai mis en relation F1 à Nom de Formation. A ce moment, dans ma table Agent, en F1, l'ensemble des formations sont proposés. Je peux mettre tout ce que je veux en F1 pour tous les agents ca marche nickel, mais en reliant F2-F3... à Nom de Formation, marche plus .
    C'est juste là que se situe mon problème.

    Je te remercie en tout cas de ton infinie patience et de la rapidité de tes réponses !

  6. #6
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Monaco

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2016
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Si jamais quelqu'un a une idée d'ici Lundi, ce serait super. Je pense que mon dernier poste était bien plus clair que le premier. Pour l'instant j'ai fait l'inverse, à savoir une table avec les formations qui est comme ceci :

    Table des différentes formations :
    Id_Formations
    Nom de la formation
    Agents

    Le champs Agents est en texte / liste de choix, et j'ai rentré tout les noms des agents. De ce fait je peux mettre les agents qui ont fait tel formation, mais ca va pas bien loin.

    Cette solution est pas mal pour voir qui a fait quoi, mais n'est pas idéale pour voir quel agent a fait tel formation, quand, le nombre d'heures sur le total (genre 6h sur 12h), les jours, etc.

    Merci bien de votre future patience pour me répondre !

Discussions similaires

  1. [ACCESS 2007] compter les enregistrements
    Par lucienkany dans le forum Access
    Réponses: 1
    Dernier message: 30/07/2008, 19h43
  2. Réponses: 2
    Dernier message: 15/04/2008, 10h55
  3. [Access 2007 - Nouveauté] Les volets d'aide à la création de champs
    Par Arkham46 dans le forum Sondages et Débats
    Réponses: 1
    Dernier message: 01/06/2007, 11h28
  4. [Access 2007 - Nouveautés] Les champs multi-valués
    Par Tofalu dans le forum Sondages et Débats
    Réponses: 18
    Dernier message: 03/08/2006, 10h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo