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 :

Généalogie musicale sous Access [AC-2000]


Sujet :

Modélisation

  1. #1
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 492
    Points : 49
    Points
    49
    Par défaut Généalogie musicale sous Access
    Bonjour,
    J'ai un petit peu d'expérience VBA for Excel mais je connais très mal Access et encore moins VBA for Access.
    Par généalogie musicale, j'imagine une ou des tables des compositeurs des XXe et XXIème siècles. Parmi eux, certains ont été les maîtres ou les professeurs de certains de leurs cadets. Réciproquement, certains ont été les élèves de certains de leurs devanciers. Chaque professeur peut avoir eu plusieurs élèves (comme un père plusieurs enfants) et chaque élève plusieurs professeurs: c'est là que l'analogie avec la généalogie est limitée !
    Dans un second temps, j'aimerais faire apparaître sur un tableau toutes ces relations de filiation intellectuelle, par analogie avec un arbre généalogique.
    J'imagine qu'on peut créer la relation maître-élève d'une manière analogue à la relation père-enfant, mais comment fait-on ? J'ai eu l'occasion de créer des relations entre diverses tables, mais pas entre plusieurs dizaines (centaines ?) d'enregistrements d'une table avec autant d'enregistrements de l'autre table. Comment faire ? Avec ou sans BVA ?
    Quelqu'un a-t-il une piste ? Ou un précédent à m'indiquer ?
    Merci d'avance
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    si un élève n'a qu'un seul maître, alors tu peux gérer dans une seule table
    Tbl_Compositeur
    --------------------
    ID
    Compositeur
    Maitre (fait référence à un autre ID de la même table)




    si un élève peut avoir plusieurs maîtres, alors il faut 2 tables
    Tbl_Compositeur
    --------------------
    ID
    Compositeur

    Tbl_Relation
    --------------------
    ID
    Compositeur (fait référence à un ID de la table des compositeurs)
    Eleve (fait référence à un ID de la table des compositeurs)


    Les techniques de reporting hiérarchique dépendront du choix structurant de départ

  3. #3
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 492
    Points : 49
    Points
    49
    Par défaut Généalogie musicale sous Access
    Merci Accessisgood,
    En fait il y a double x double relation: un élève peut avoir 2 ou plusieurs maîtres
    un maître peut avoir 2 ou plusieurs élèves. Je suppose que je dois avoir 4 tables
    tbl_maitres
    tbl_eleves
    tbl relations_enseignants
    tbl_relations_enseignés
    sauf que chaque relation maître-élève est bi-directionnelle: si B est l'élève de A, A est le maître de B (comme disait La Palice).
    Donc il suffit de 3 tables ?
    Est-ce bien ça ? Si oui je me lance et je verrai bien où j'arrive. Encore merci.
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  4. #4
    Modérateur

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

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

    Personnellement je ferai :

    tblPersonne
    ClefPersonne
    Autre info

    tblAssProfEleve
    ClefAssProfEleve
    ClefPersonneProf
    ClefPersonneEleve

    • En relation avec tblPersonne sur ClefPersonneProf
    • En relation avec tblPersonne sur ClefPersonneEleve


    Pour faire cela il faut ajouter 2 fois la table tblPersonne à la fenêtre des relations.
    Access va créer une table fantôme (juste à l'écran, pas physquement) et tu vas pouvoir faire 2 relations.

    Je ne vois pas d'intérêt à séparer les élèves des professeurs surtout si un élève peut être un prof et un prof un élève.

    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
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 335
    Points : 23 793
    Points
    23 793
    Par défaut
    Bon je viens de m'appercevoir que c'est la même réponse que la 2ième de Accessisgood juste formulée un peu différement.

    Note que si tu veux parcourir le génalogie, par exemple pour Prof->Prof->Prof->Elève, cela se fait uniquement avec du VBA.
    Et que si tu as quelque chose comme Prof1->-Prof2->Prof3->Prof2, alors ce n'est pas simple à programmer.

    Un élève est une personne qui n'a pas d'élève dans la table d'association.

    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.

  6. #6
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 492
    Points : 49
    Points
    49
    Par défaut Généalogie musicale sous Access
    Bonsoir Marot_r,
    J'aurais dû y penser: il y a 2 types de relations, mais un seul type de personnes: des musiciens. Je vais tenter le coup sur un petit échantillon. Merci.
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  7. #7
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    il n'y a qu'un seul type de relation: Professeur-Elève

  8. #8
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 492
    Points : 49
    Points
    49
    Par défaut Généalogie musicale sous Access
    Bonjour,
    Tu as indéniablement raison, accessisgood. Cependant cela soulève une question intéressante (enfin: que je trouve intéressante): si je fais la biographie de Fauré, j'écrirai "Fauré fut le maître de Debussy"; si je fais celle de Debussy, ce sera "Debussy fut l'élève de Fauré". Maintenant si j'écris une biographie d'Achille, je dirai: Achille fut l'ami de Patrocle et dans la biographie de Patrocle, je dirai "Patrocle fut l'ami d'Achille". L'une des relations est réciproque, l'autre pas. De même dans la biographie d'Achille je dirai "Achille fut l'ennemi d'Hector" et réciproquement, dans celle d'Hector: "Hector fut l'ennemi d'Achille". Dans cette discussion du moins l'informatique ne fait pas de différence entre une relation réciproque et une qui ne l'est pas, semble-t-il ? Est-ce vraiment sans importance ? Y compris au niveau algorithmique ?
    Typiquement la question qui peut rester sans réponse ;-)
    Bien à toi
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  9. #9
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    dans la table des relations il faut rajouter un champ "Type" qui détaille le type de relation: Ami, Enemi, Maître-Elève...(et pas besoin de relation Elève-Maître, elle est inhérente à la relation Maître-Elève par commutativité)

  10. #10
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 492
    Points : 49
    Points
    49
    Par défaut genealogie-musicale-sous Access
    Merci accessisgood.
    je vais bosser un peu et voir avant de déclarer la discussion close.
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  11. #11
    Modérateur

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

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

    Comme dans ta table d'association tu as 2 champs ClefPersonneProf et ClefPersonneEleve, tu peux donc distinguer le "sens" de la relation.
    Si tu as besoin d'une caractérisation autre en effet ajouter un type à la table d'association résoud cela.

    Cela pourrait ressembler à cela.

    tblAssPersonnePersonne
    ClefAssPersonnePersonne
    ClefPersonne1
    ClefPersonne2
    CodeTypeRelation

    tblTypeRelation
    ClefRelation
    CodeRelation
    DescRelation

    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.

  12. #12
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 492
    Points : 49
    Points
    49
    Par défaut Généalogie musicale sous Access
    Bonjour accessisgood et marot_r, et merci,
    J'ai déjà réagi hier à vos derniers posts mais je ne vois pas mon msg. Eliminé par la modération ?
    Sans nouvelles, j'ai pris un départ et vous propose une capture de l'état de mon projet, avec la table "fantôme" dont l'un de vous a parléNom : fenêtre_relations.PNG
Affichages : 441
Taille : 39,3 Ko. Deux questions: 1) est-ce que ça correspond à ce que vous avec décrit ?
    2) Je vois bien la mise en relation d'un champ d'une table avec un champ d'une autre, mais comment mettre en relation un enregistrement d'une table avec un enregistrement de l'autre ? Mettre tous les profs en relation avec tous les élèves ne sert à rien, il faut mettre, par exempe, Fauré en tant que prof en relation avec Debussy en tant qu'élève. Comment fait-on ?
    Il y a des tas de modèles dans Access; y en a-t-il un qui présente le même type de problème que le mien, et que je pourrais étudier ?
    Merci d'avance
    Cordialement
    Pierre
    P.S. Question au modérateur: mon dernier post d'hier soir a-t-il été éliminé ?
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  13. #13
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    le modèle est presque fini:
    pour la table des compositeurs tu peux enlever No, il fait doublon avec la clef
    pour la table des relations tu peux ajouter CodeTypeRelation

    pour faciliter la saisie
    - tu définis la table des relations comme dépendante de la table des compositeurs (ouvre la table des compositeurs en mode design et remplis les 3 paramètres)
    Nom : Capture.GIF
Affichages : 334
Taille : 8,8 Ko
    - paramètre le champ ClefComposEleve comme dropBox et tu saisis les 4paramètres
    Nom : Capture2.GIF
Affichages : 306
Taille : 9,0 Ko

  14. #14
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 492
    Points : 49
    Points
    49
    Par défaut Généalogie musicale sous Access
    Merci accessisgood,
    Content que ce soit presque fini mais ça coince: je ne sais pas ce que c'est que le mode design. Je ne sais pas comment accéder aux fenêtres jointes à ton post. Donc je n'ai pas avancé ! Est-ce l'âge canonique de ma version d'Access ? Je viens d'acheter Office 2016 qui n'inclut pas Access et ça m'embêtait de l'acheter en plus Mais s'il le faut...
    Merci d'avance de tes lumières (sans jeu de mots)
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  15. #15
    Modérateur

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

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

    Le mode design c'est le mode création. C'est quand tu modifies la structure de tes tables.
    Je pense que SubSheet n'est accessible que depuis la version 2007.

    Tu peux faire quelque chose de grosso modo équivalent en faisant un formulaire basé sur la table des compositeurs et un sous-formulaire basé sur la ComposEleve.

    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.

  16. #16
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 492
    Points : 49
    Points
    49
    Par défaut Généalogie musicale sous Access
    Bonjour et merci,
    Je commence à y voir clair. Mais j'ai encore une question: mon appli doit pouvoir supporter des relations plusieurs à plusieurs; toutes ne le sont pas, mais certaines, oui. Dans ce cas, est-ce que la structure à deux tables, une de compositeurs (qui peuvent être à la fois profs et élèves) et une table de liaison reste valable, ou faut-il une table de plus ?
    Merci d'avance.
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  17. #17
    Modérateur

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

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

    Ta table d'association permet les liaison N à N.

    Un même prof peut avoir plusieurs élèves et un élèves peu avoir plusieurs profs.
    Tu crées autant d'enregistrements que tu as de lien entre prof et élèves.
    Cela donne un truc du genre

    • Prof1, Elève1
    • Prof1, Élève2
    • Prof1, Élève3

    • Prof2, Élève3

    • Prof3, Élève1


    Si tu veux être sur de ne pas mettre 2 fois la même association, tu peux ajouter un index unique composé de la ClefProf et de la ClefEleve.

    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.

  18. #18
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 492
    Points : 49
    Points
    49
    Par défaut Généaloguie musicalqe sous Access
    Bonsoir accessisgood et marot r
    J'ai passé du temps sur la liste des compositeurs mais je reviens à propos d'un problème: est-ce que je fais une erreur ou est-ce l'obsolescence de ma vieille version d'Access: si je fais une Bd à 3 tables, soit 2 tables des compositeurs avec le même contenu mais un nom différent (+ la tbl liaison), l'assistant formulaire me propose l'option "sous-formulaire" mais si j'en reste à 2 tables avec une copie fantôme, cette option n'apparaît pas, et je ne sais pas comment ajouter mon sous-formulaire. Qu'en pensez-vous ?
    Merci d'avance
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  19. #19
    Modérateur

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

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

    L'ajout de sous-formulaire n'a pas grand chose à voir avec les relations et les tables.
    Tu crées un formulaire que tu veux utiliser comme sous-formulaire sur la source que tu veux.
    Puis dans le formulaire principal tu utilises l'assistant de sous-formulaire pour l'inclure.

    Personnellement il m'est arrivé d'avoir 2 sous-formulaires basés sur la même table mais dont les propriétés champs père, champ fils étaient différents.

    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.

  20. #20
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 492
    Points : 49
    Points
    49
    Par défaut Généalogie musicale sous Access
    Bonsoir,
    Désolé mais je ne m'en sors pas.
    Je suis parti de cette structure (post de Marot r du 29.1.18) en adaptant les libellés:
    tblPersonne >> Tbl_Compos
    ClefPersonne >> ClefCompos
    Autre info >> Prenom, Naissance (pour assurer l'identification, en cas d'homonymie)

    tblAssProfEleve >> Tbl_AssProfEleve
    ClefAssProfEleve >> Clef_Ass_ProfEleve
    ClefPersonneProf >> Clef_Compos_Prof
    ClefPersonneEleve >> Clef_Compos_Eleve

    (Access m'a imposé un numéro automatique mais j'ai vu qu'on peut le supprimer et affecter le numéro au champ Clef_Compo)

    J'ai un formulaire principal Form_Tbl_Compos et un sous-formulaire Tbl_AssProfEleve sous-formulaire.
    J'ai le même compositeur dans la partie principale et dans le sous-formulaire et ils changent en même temps quand j'actionne les flèches fl à g. et fl à dr. en bas du formulaire. Je n'ai donc pas de champ vide où saisir la contre-partie du compositeur affiché (je joins une capture d'écran).
    En réalité je ne sais pas comment cet assemblage formulaire/sous-formulaire est censé être utilisé. J'imagine qu'il doit me permettre d'associer à un compositeur "prof" un ou plusieurs compositeurs "élèves", mais en l'état ce n'est pas possible.
    Il y a d'ailleurs un point que je n'ai pas encore cité: dans la documentation (imprimée ou en ligne) la formule usuelle est "Le compositeur C1 a étudié sous la direction du compositeur C2 (ou des compositeurs C3, C4 et C5)" et généralement pas dans le sens contraire: il est rare qu'on trouve "le compositeur C6 a eu pour élèves les compositeurs C7, C8 et C9".
    Ca fait beaucoup de questions pour un post mais je crois avoir appliqué correctement vos consignes et je n'obtiens pas le résultat attendu. Où est-ce que je me plante ?
    Merci d'avance.
    Bien cordialement
    Pierre
    P.S. Les flèches qui font défiler les enregistrements sont désactivées dans la partie sous-formulaire.Nom : Screen Shot 02-06-18 at 10.11 PM.PNG
Affichages : 413
Taille : 28,4 Ko
    There is always an easy solution to every human problem - neat, plausible. And wrong.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Update sous Access
    Par Sk8cravis dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/04/2009, 14h29
  2. Réponses: 2
    Dernier message: 04/06/2004, 11h11
  3. mise a jours des données sous access
    Par puyopuyo dans le forum ASP
    Réponses: 4
    Dernier message: 25/05/2004, 12h46
  4. QUESTION SUR AVG, Sous Access
    Par sylvaine dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/10/2003, 13h51
  5. [Optimisation] Rushmore sous Access
    Par P'tit Jean dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/07/2003, 15h15

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