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

Requêtes et SQL. Discussion :

Requête sur association ternaire


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Requête sur association ternaire
    Salut,

    Je m'excuse d'avance pour le pavé que je vais écrire, mais pour obtenir l'aide de quelqu'un je pense qu'il est mieux qu'il connaisse bien mon projet

    Tout d'abord je tiens a préciser que je ne suis pas du tout dans l'informatique, je travaille dans le BTP (je suis en alternance)
    Lors de mon cursus scolaire, j'ai eu des cours de base de données. Le prof nous a donné comme projet de créer notre propre base données sur Access (sujet libre).
    J'ai donc fait appel à mon entreprise pour le sujet afin que cette base de données soit utile car je trouvais ça dommage de faire une base de données dans l'unique but d'obtenir une note.

    Mon sujet est donc que aujourd’hui, pour gérer l’affectation et le suivi d’un ouvrier sur un chantier, les conducteurs de travaux, le directeur d’exploitation et son adjoint réalise une fois par semaine une réunion qu’il nomme « réunion main d’oeuvre », suite à cette réunion le directeur d’exploitation adjoint rempli un tableau Excel qui se présente sous forme de calendrier et qui répertorie tous les ouvriers affecter à un lieu (chantier, chômage, accident de travail, formation…).
    Mon sujet est donc de faire de cette feuille Excel totalement imbuvable, une base de données facile et rapide à utiliser, car le but principal étant de faire gagner du temps au directeur d’exploitation adjoint.
    Il faut donc une base de données dans laquelle j’ai :
    - Des employés avec toutes leurs caractéristiques (nom, prénom, matricule, restriction
    médicale, commune, permis B ou non, CACES (permis engin de chantier), nature de
    son métier, qualification, statut)
    - Des chantiers ayant un nom, un matricule et une localité
    - D’autres lieux (chômage, formation, RTT etc.)
    - Un planning permettant l’affectation de la main d’oeuvre à des dates précises.
    Le but de cette base de données est de pouvoir affecter un ouvrier sur un lieu à une date
    donnée et de pouvoir par la suite accéder, en un clique, a toutes ces données.
    Exemple :
    • Cliquer sur un chantier et avoir une liste des ouvriers présent sur ce chantier avec leur
    date de début d’affectation et leur date de fin d’affectation.
    • Cliquer sur un ouvrier et avoir toutes ses caractéristiques qui s’affiche.
    • Cliquer sur un ouvrier et connaître ou il est affecté et à quelle date
    • Entrer une date et savoir qui est où à cette date.
    En plus de cela il faudrait qu’en un clique, il puisse avoir accès au CACES avec leur date
    de fin de validité.

    Jusqu’à présent, j'ai fait le mcd, mld, j'ai fait les tables sur Acces avec leurs relations ça donne ça :

    Nom : Access.PNG
Affichages : 568
Taille : 44,4 Ko

    Mon problème est donc le suivant : Je n'arrive pas à rendre cette base données fonctionnelle qu'à travers des formulaires, je ne sais pas du tout quelle type de requêtes faire notamment pour rendre la ternaire fonctionnelle, donc si quelque sait m'orienter je lui en serait très reconnaissante.

    Merci

  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.

    Je ne repère pas la "ternaire" à laquelle tu fais référence mais ton modèle semble correct.
    Je vais faire une réponse générique, si tu as besoin de précisions, n'hésite pas à demander.

    Pour faire de la saisie sur des tables d'associations on utilise généralement 2 techniques.
    Je vais utiliser "table" pour simplifier mais tu peux facilement utiliser une requête de sélection.

    1. Formulaire/Sous-Formulaire
      Donc tu crées un formulaire sur ta table "maitresse" (ex : chantier)
      Et tu crées un sous-formulaire sur ta table "esclave" (ex : lieux)
      Access va te présenter dans le sous-formulaire les lieux associés au chantier.
    2. Listes déroulantes directement sur la table.
      L'autre méthode consiste à faire la saisie directement sur la table d'association.
      Donc tu crées simplement un formulaire basé sur ta table (ex : lieux) et pour faciliter la vie des tes utilisateurs, tu utilises des listes déroulantes pour leur offrir le choix des valeurs (chamtier et autre).
      Ces listes sont basées sur les tables de références (ex : table des chantiers).


    Et tu peux bien sur combiner et avoir un formulaire avec un sous-formulaire directement sur la table.
    Ou faire aussi :

    Formulaire
    Sous-Formulaire
    Sous-Sous-Formulaire

    Bon succès dans tes études.

    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
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour ta réponse
    Du coup j'ai essayé et ça donne ça :

    Nom : lieux.PNG
Affichages : 382
Taille : 9,2 Ko

    Et lorsque je clique sur le bouton "assigner" il m'ouvre ca :

    Nom : Assigner.PNG
Affichages : 423
Taille : 8,7 Ko

    Je dois juste ajouter un champ qui me calcul automatiquement la date de fin d'assignation, ça je devrais y arriver je pense

    Par contre sais tu comment je peux :
    - Avoir une liste déroulante au niveau du champ nom dans mon formulaire
    - Attacher le nom au prénom (c'est à dire, que lorsque je clique sur le nom dans ma liste déroulante, le prénom s'entre automatiquement sans que j'ai besoin de l'entrer moi même)
    - Et enfin, comment je peux, après avoir remplis ce formulaire, avoir un formulaire ou bien un état (je ne sais pas lequel serait le mieux, je pense un état) qui m'affiche un espèce de calendrier me répertoriant tout les chantier avec tout les ouvrier assigner sur ces chantiers à une date précise

    Je sais pas si c'est claire ce que je viens d'expliquer :/

    Sinon ma ternaire elle est entre employés/Lieux et Planning, avec la table Assigner qui les réunis

    A+

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Finalement ça ne fonctionne pas ce que j'ai fait :/

    Il m'indique comme message d'erreur ceci :
    Nom : Capture.PNG
Affichages : 375
Taille : 20,7 Ko

    Les seuls doublons que je lui ai interdit son les matricules des employés mais je ne les rentre pas dans mon formulaire donc je ne comprends pas pourquoi il me dit ça

  5. #5
    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 n'as pas fait ce que j'attendais.

    Je te suggère une structure du type

    +----
    | Formulaire Lieu
    |+---
    | | Sous formulaire Assigner
    |+---
    +----

    Tu choisis un lieu (ou tu en ajoutes un nouveau)
    Quand tu passes au Sous-formulaire Access reporte l'identifiant Id_lieu dans T_Assigner.

    Je penses que ton problème actuel vient de là : il manque ou la valeur reportée n'est pas la bonne.

    Pour ta sélection des personnes, même si la solution en Nom puis Prénom est plus "logique" elle s'avère beaucoup plus compliquée à mettre en œuvre qu'on pourrait s'y attendre.

    Je te suggère de faire une liste déroulante basée sur la requête suivante :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select [T_Employes].[Matricule_Employe], [T_Employes].[Nom_Employe] & ", " & [T_Employes].[Prenom_Employe] & " (" & [T_Employes].[Matricule_Employe] & ")" as  Nom_Prenom_Matricule_Employe
    form [T_Employes]
    order by [T_Employes].[Nom_Employe], [T_Employes].[Prenom_Employe], [T_Employes].[Matricule_Employe]

    (Je te conseille d'enregistrer cette requête ex sous le nom reqChoixEmploye, car il est à peut près sure que tu va en avoir besoin ailleurs.)

    Qui va te donner en une seule fois toute l'information. L'ajout du matricule est pour distinguer les homonymes.
    Pour l'affichage, tu indiques 2 colonnes et pour la largeur des colonnes tu mets "0;" ce qui fait que la colonne matricule disparaît de l'affichage.

    Sinon il faut que tu crées une liste déroulante sur les noms (utilise l'assistant)
    puis une liste déroulante sur les prénoms dépendante de la sélection du nom (voir la FAQ : "Comment faire en sorte que le contenu d'une zone de liste déroulante dépende de la valeur d'une autre liste ?", https://access.developpez.com/faq/?page=zdl#DepZdl).
    Et quand tu fais ta sélection, tu as des effets de disparition (les valeurs choisies sur les autres lignes ne sont plus affichées même si elles sont bien conservée) donc il faut faire une zone pour la sélection et une zone pour l'affichage.
    Bref c'est une galère pour un gain mineur.

    Pour le calendrier, le plus simple est que tu utilises l'assistant de création d'état.
    Personnellement je fais une requête qui me présente les infos dont j'ai besoin en mettant en jointure les tables nécessaires pour "décoder" les valeurs d'Id.
    Une fois que j'ai cela j'appelle l'assistant de création de rapport (état) qui fait le plus gros du travail en le basant sur ma requête.
    Attention Access est bon à présenter des listes
    la date,
    le chantier,
    la personne

    Mais si tu veux quelque chose comme
    Date01 | Date02 | Date03 |
    Chant01 | Chant01 | Chant02 |
    Perso01 | Perso02 | Perso03 |
    Perso04 | Perso01 | Perso02 |
    Chant02 | Chant03 | Chant03 |
    Perso05 | Perso06 | Perso07 |

    Là ça peut être BEAUCOUP plus compliqué dépendant de ce que tu veux vraiment obtenir.

    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.

Discussions similaires

  1. [MCD] Musique : Contrainte sur une association ternaire
    Par Thomas_Dotnet dans le forum Schéma
    Réponses: 4
    Dernier message: 10/11/2016, 19h45
  2. [AC-2007] Requête sur table d'association avec critère de date
    Par Dapangma dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 06/05/2014, 10h13
  3. Requête HQL sur association
    Par thomasl_76 dans le forum Hibernate
    Réponses: 2
    Dernier message: 14/06/2011, 13h53
  4. [AC-2007] Problème requête sur 1 table en passant par une association
    Par ganon dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/08/2009, 15h33
  5. [HQL]Requête avec association ternaire
    Par kekesilo dans le forum Hibernate
    Réponses: 0
    Dernier message: 07/01/2009, 15h58

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