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 :

Regrouper les valeurs de 6 champs de trois tables dans une nouvelle tables


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 373
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut Regrouper les valeurs de 6 champs de trois tables dans une nouvelle tables
    Bonjour le Forum
    Tout d'abord Bonnes Fêtes de fin d'année à tous.
    Je bute actuellement sur le regroupement des valeurs de 6 champs dans une table issus de 3 tables soit 18 champs au total dans une nouvelle table.
    Je m'explique.
    Je créée une base de santé avec entre autre une table de Consultation et 3 tables d'ordonnance comprenant 6 champs de médicament chacune.
    Les médicaments sont issus de la table T_Medicament.
    Le but final, je voudrais sortir une liste des médicaments ( avec le nombre de chacun ) pris par moi même ou par mon épouse.
    Actuellement je ne sais pas comment faire pour pouvoir réunir tous les médicaments présents par les 3 ordonnances d'une consultation d'un prénom.
    Mon docteur peut me délivrer (éventuellement) plusieurs ordonnances contenant de 1 à 6 médicaments par ordonnance lors d'une consultation.
    La relation entre ces 4 tables se fait par la clef primaire de la table de Consultation.
    Si quelqu'un peut me débloquer je suis preneur.
    Merci d'avance
    Cordialement

  2. #2
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    Une capture d'écran de la fenêtre des relations serait la bienvenue.

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Salut.

    Des explications données, je pense qu'il n'est pas nécessaire d'avoir des tables à regrouper en une seule à un moment donné. La modélisation des données impose qu'il y ait UNE table pour chaque entité. Ici, on parle de personnes (toi, ton épouse et les toubibs), de médicaments et d'ordonnances. Cela fait trois tables. Dans la mesure où une ordonnance est composée de plusieurs lignes (on peut prescrire plusieurs médicaments sur la même ordonnance), il faut une table pour les lignes des ordonnances. Une cinquième table contiendra les rôles de chaque personne (patient ou toubib).

    Voici, d'une rapide analyse, ce que je proposerais comme structure de base. Elle te permettra d'encoder les patients (ton épouse et toi-même, voire d'autres personnes), les médecins prescripteurs, les médicaments, ainsi que les ordonnances avec le détail de celles-ci. Avec cette architecture, je considère qu'un "patient" ne peut pas en même temps être "médecin" , ce qui est suffisant pour le cas que tu exposes.

    Si une personne était à la fois patient et toubib, il faudrait soit l'encoder deux fois, une fois comme patient et une fois comme toubib, mais cela créerait un problème de structure des données, ou alors modifier la structure des tables en passant par une table Personne/Rôle, seule capable de modéliser la relation Plusieurs à plusieurs qui serait créée (si on exclut les champs multivalués d'Access, ce que je conseille car c'est une horreur inepte qui ne respecte pas les formes normales de conception de bases de données relationnelles). Note bien que sur le diagramme ci-dessous, Personne et Personne_1 pointent vers la même table, Access imposant de placer la table Personne une seconde fois dans le diagramme puisqu'une table (Ordonnance) utilise deux clés externes vers cette table (une pour le patient et l'autre pour le toubib).

    Dans le fichier joint, tu trouveras un exemple avec quelques saisies ainsi que deux jeux de formulaires/sous-formulaires, un pour le patient et pour le médecin.

    Nom : 2019-12-29_153525.png
Affichages : 592
Taille : 50,9 Ko



    Grâce à cette architecture de tables, tu vas pouvoir faire ce que tu veux avec tes données, tant au niveau de la saisie que du reporting et de l'analyse. Au niveau de la saisie, tu peux encoder une ordonnance sur la fiche du patient ou sur la fiche du médecin, selon ton choix et la configuration du moment. Tu pourrais également créer un formulaire Ordonnance dans lequel tu renseignerais le patient et le médecin. Sur le plan de l'analyse, le modèle relationnel permet d'aller d'aller de n'importe quelle table à n'importe quelle autre, puisque toutes les tables sont liées entre-elles.


    Nom : 2019-12-29_153400.png
Affichages : 500
Taille : 70,7 Ko

    Nom : 2019-12-29_153334.png
Affichages : 496
Taille : 67,3 Ko
    Fichiers attachés Fichiers attachés

  4. #4
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 373
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Bonjour Pierre et Hyperion13
    Pierre je te remercie pour tes explications très détaillées que je vais étudier demain. Je reviendrai vers vous pour vous informer.
    Actuellement j'ai bidouillé un résultat par l'intermédiaire de 18 requêtes ajout qui remplissent une table de tous les médicaments qui sont présentes dans les ordonnances.
    Encore merci
    Cordialement

  5. #5
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 373
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Re
    Je joins une photo pour Hyperion13.
    Pour Pierre, pourrais-tu m'expliquer la différence entre les requêtes L_Medecins et Medecins, L_Patients et Patients. Apparemment Medecins et Patients sont la source des formulaires Medecin et Patient, mais à quoi servent L_Medecins et L_Patients.
    Il est vrai que je me peut-être compliqué l'existence avec beaucoup de précisions qui alourdissent l'ossature. Je vais essayer de refaire cette base avec tes précieux conseils.
    Cordialement
    Images attachées Images attachées  

  6. #6
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 373
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Bon réveillon à tout le Forum et mes voeux pour cette année 2020
    Bonjour Pierre
    Je reviens vers toi pour un explication concernant tes formulaires Médecin et Patient.
    Après inséré un prénom (Serge) dans la table Personne et pour rôle Patient et que je veux utiliser le formulaire Patient avec un nouvel enregistrement en cliquant sur l'étoile jaune et inscrit mon prénom dans le contrôle Prénom et déplacé le curseur avec la touche TAB je me retrouve avec une fenêtre d'erreur figurant ci-dessous.
    Je n'ai pas l'habitude de travailler sous cette forme d'architecture est-il possible de mettre le contrôle Prénom du formulaire Patient en liste déroulante ?
    Cordialement
    Images attachées Images attachées  

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour, et bonne année 2020

    Il faut ajouter la liste déroulante de choix du rôle dans les formulaires patient et médecin... Voici un fichier adapté
    Fichiers attachés Fichiers attachés

  8. #8
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 373
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Merci de ta réponse.
    Et apparemment pour mettre le prénom ou nom en liste déroulante dans les formulaire Patient ou Medecin il faut passer par une table spécifique prénom ou autre.
    Passes une bonne journée.
    Cordialement

  9. #9
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 373
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Re
    Je suis vraiment un nul avec cette architecture d'apparence facile est très troublante (pour moi).
    En effet avec un nouveau Prénom et un nouveau médecin voici le message d'erreur dans le sous formulaire des médicaments. Je n'arrive pas à saisir d'où vient cette erreur.
    Cordialement
    Images attachées Images attachées  

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Ici, le but était surtout de montrer la structure des tables, pour éviter les x tables et les x requêtes pour réunir le tout. Après, sur le plan de l'ergonomie, j'ai été très minimaliste pour montrer que l'on peut prendre l'encodage d'une ordonnance par le formulaire du patient ou par le formulaire du médecin.

    On pourrait imaginer un troisième formulaire qui permette d'encoder une ordonnance, en partant de la table ordonnance. On voit que dans les trois cas, on utilise le formulaire sfOrdonnanceDetails qui n'est donc créé qu'une fois.

    Nom : 2020-01-01_115138.png
Affichages : 489
Taille : 16,8 Ko


    Ce qu'il est important de voir ici, c'est que toutes ces ergonomies sont possibles uniquement parce nos tables sont bien construites et respectent les normes qui président aux bases de données relationnelles. La base essentielle en Access, c'est l'architecture des tables, sur laquelle tout le reste de l'application repose.
    Fichiers attachés Fichiers attachés

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par lmc71 Voir le message
    Re
    Je suis vraiment un nul avec cette architecture d'apparence facile est très troublante (pour moi).[...]
    Ici, on part du principe que les médicaments existent déjà dans la table des médicaments. A nouveau, c'est une question d'ergonomie. Access permet d'associer un formulaire de saisie à une liste déroulante lorsque l'on saisit dans la liste une valeur qui ne s'y trouve pas. Je ne suis personnellement pas très chaud pour ce genre d'ergonomie si on la met en place sans alerte, car elle amène inévitablement à créer des pseudo-doublons dans les tables. Il suffit d'un moment d'inattention sur la saisie du nom d'un médicament pour créer un "doublon" sur base d'une simple faute de frappe.

    Comme je l'ai dit dans mon message précédent, c'est d'abord une question de structure des tables avant d'être une question d'ergonomie. Pour le cas que tu as initialement soulevé, il n'y a à mon avis qu'une bonne structure de table, celle que j'ai proposée. Par contre, les ergonomies qui s'appuieront dessus peuvent varier considérablement selon les développeurs, le fait que l'on met ou pas des macros ou du vba derrière, etc.

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par lmc71 Voir le message
    Re
    Je suis vraiment un nul avec cette architecture d'apparence facile est très troublante (pour moi).[...]
    Non non, tu n'es pas nul... C'est moi qui suit nul (comme les bulles de hier soir?).

    Dans le diagramme relationnel, j'avais mal relié les tables Medicament et OrdonnanceDetail... (J'ai glissé, chef). Désolé!!

    J'ai corrigé. Dans le fichier joint, tu n'auras plus ce souci... Désolé pour la perte de temps.
    Fichiers attachés Fichiers attachés

  13. #13
    Membre habitué

    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2014
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2014
    Messages : 373
    Points : 150
    Points
    150
    Billets dans le blog
    1
    Par défaut
    Re
    En espérant que tu n'as pas passé ce jour si merveilleux devant toi clavier......
    Ne te traite pas de nul vu les étoiles......
    Je n'arrive pas à déceler l'anomalie de cette relation car je pensais qu'elle était voulue.....
    Je te rejoins dans le fait de dire qu'une bonne charpente, ossature ou architecture d'une basse évite bien des maux, mais faut-il encore trouver et penser la bonne combinaison ou le bon chemin pour arriver au but final.
    Je t'en supplies ne me qualifie pas de Chef, car je se le suis tu es Capitaine de Vaisseau.....
    Allez laisse tomber le clavier et termine bien la soirée.
    Je vais essayer de progresser dans ton idée.
    cordialement

Discussions similaires

  1. UPDATE regrouper les valeurs d'un champ
    Par hammag dans le forum SQL
    Réponses: 4
    Dernier message: 31/07/2012, 11h17
  2. Réponses: 2
    Dernier message: 14/07/2009, 08h45
  3. Valeur d'un champ de type File dans une page HTML
    Par AlainTech dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/12/2007, 13h17
  4. Réponses: 2
    Dernier message: 26/04/2007, 11h52
  5. valeur d'un champ pour l'utiliser dans une requete
    Par bachilbouzouk dans le forum ASP
    Réponses: 4
    Dernier message: 08/04/2005, 16h58

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