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 :

Relier des enregistrements d'une table à d'autres enregistrements de la même table? [AC-2007]


Sujet :

Modélisation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Vendeur
    Inscrit en
    Juin 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Vendeur

    Informations forums :
    Inscription : Juin 2019
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Relier des enregistrements d'une table à d'autres enregistrements de la même table?
    Bonjour,

    Après plusieurs jours de galère, sans pour autant progresser d’un iota, je reviens vers vous en espérant trouver une solution pour avancer dans mon projet.

    * J’ai un formulaire (frmTaxa) basé sur une table (tblTaxa) :
    Nom : tblTaxa.jpg
Affichages : 239
Taille : 78,9 Ko
    * Pour chaque enregistrement, le champ [Status] est soit « Valid » soit « Synonym » (d’un enregistrement valide).

    * Un enregistrement « Valid » n’a pas forcément de synonyme(s) mais il peut en avoir un ou plusieurs.
    Un « Synonym » est toujours le synonyme d’un seul enregistrement « Valid »
    Ce que j’aimerai obtenir :

    * Sur mon formulaire (frmTaxa), par l’intermédiaire d’un bouton (visible uniquement si le champ [Status] est « Synonym »), ouvrir un autre formulaire (frmSynonym) me permettant de désigner (avec un champ oui/non à sélectionner par exemple) l’enregistrement « Valid » duquel mon enregistrement est le synonyme.

    *Pour chaque enregistrement, afficher dans le formulaire (frm Taxa) un sous-formulaire m’indiquant le(s) synonyme(s) (valides ou non) éventuels.

    Exemple :
    - Dans ma table (frmTaxa) j’ai 6 enregistrements (taxon1, taxon2, taxon3, taxon4 taxon5 et taxon6 par exemple).
    - taxon1, taxon2 et taxon4 sont « Valid »
    - taxon3 est « Synonym » de taxon2
    - taxon5 et taxon6 sont « Synonym » de taxon4

    Dans l’idéal, dans mon formulaire (frmTaxa), j’aurais donc dans mon sous-formulaire:
    - Si je suis sur taxon1 : un sous-formulaire vide.
    - … taxon2 : le taxon3 (sans avoir dû faire le lien puisqu’il est déjà fait avec le taxon3*).
    - … taxon3 : le taxon2.
    - … taxon4 : taxon5 et taxon6 (*idem taxon2)
    - … taxon5 : taxon4 (et éventuellement taxon6 si c’est impossible ou trop complexe pour faire autrement).
    - … taxon6 : taxon4 (et éventuellement taxon5…idem taxon5).

    Dans mon précédent post (où je n’étais pas clair du tout), loufab me conseillait d’agir sur les propriétés « Champs père » et « Champs fils » et, après avoir lu de nombreux didacticiels, je pense également que c’est la bonne méthode. Une relation « un à plusieurs » me semble également la relation à utiliser.
    Je sais que je peux relier une table à elle-même (en l’affichant 2 fois dans une requête).
    Mais je ne sais absolument pas comment gérer les relations entre ma table et elle-même.
    J’imagine qu’il faudrait passer par une (ou plusieurs) requête(s) et peut-être une table de jointure. Mais comment faire ?

    Bonne fin de semaine à vous tous et merci d’avance pour votre aide !

  2. #2
    Modérateur

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

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

    Mais je ne sais absolument pas comment gérer les relations entre ma table et elle-même.
    C'est la même chose qu'avec les requêtes.
    Dans la fenêtre des relations il faut ajouter la table une seconde fois.
    Access va la nommer quelque chose comme NomTaTable_1.
    Ce n'est qu'une astuce d'affichage, tu ne viens pas de créer une copie de ta table. Tu n'as toujours dans ta BD qu'une seule table NomTaTable.
    Après il te suffit de faire une relation entre NomTaTable et NomTaTable_1 comme avec n'importe quelles tables.

    Je ne sais pas exactement ce que tu veux faire mais quand j'ai eu à travailler avec des synonymes j'ai procédé ainsi :

    tblSynonyme
    ClefSynonyme (numéro auto)
    Valeur (texte)
    Synonyme (texte)

    Lors de mon étape de chargement je remplaçais systématiquement mes synonymes par leur valeurs associées comme cela dans ma BD je n'avais jamais qu'une et une seule valeur.
    Note pour simplifier un peu le processus on peut décider qu'une valeur est son propre synonyme ce qui évite un traitement spécifique.
    On remplace toujours le synonyme par sa valeur, et cette valeur est parfois identique au synonyme.

    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Vendeur
    Inscrit en
    Juin 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Vendeur

    Informations forums :
    Inscription : Juin 2019
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup pour ta réponse !

    En fait, dans mon cas, un « synonyme » n’a pas exactement la même signification que dans le langage courant mais a le sens du « synonyme » utilisé en taxonomie (science des lois et des principes de la classification des organismes vivants).

    Quelques explications pour essayer de faire comprendre mon projet :

    En taxonomie :

    * un « Taxon » est un terme général qui désigne les unités ou catégories taxonomiques : Superfamilia, Familia, Subfamilia, Genus, species, ...
    Il désigne un organisme vivant (dans le cas de Species & Subspecies) ou un groupe d’organismes vivants (dans les autres cas de classification supérieure : Superfamilia,…Subgenus).
    Dans ma bdd, un Taxon est donc un enregistrement de la table tblTaxa dans son intégralité.
    Par exemple, pour le doryphore (coléoptère connu de tous je pense), j’aurais 7 enregistrements différents à encoder dans ma table:
    1 - un enregistrement pour la famille: ici Chrysomelidae dans le champ « Familia ».
    2 - un enregistrement pour la sous-famille: ici Chrysomelidae dans le champ « Familia » & Chrysomelinae dans le champ « Subfamilia ».
    3 –un enregistrement pour la tribu : Chrysomelidae – Chrysomelinae – Chrysomelini (« Tribus »).
    4 – un enregistrement pour la sous-tribu…

    7 – un enregistrement pour l’espèce : Chrysomelidae – Chrysomelinae – Chrysomelini – Doryphorina (« Subtribus ») - Leptinotarsa (« Genus ») – Leptinotarsa (« Subgenus » qui peut-être identique à « Genus ») et decemlineata (« Species »).
    Il existe d’autres espèces du Genre Leptinotarsa, Leptinotarsa juncta par exemple. Dans ce cas je n’aurais qu’à encoder 1 enregistrement « Species » puisque les autres (les taxons de classification supérieure) sont déjà encodés.

    * un « synonyme » désigne un organisme vivant (dans le cas de Species & Subspecies) ou un groupe d’organismes vivants (taxon, qui est défini par un nom de Genre) qui, après étude, se révèle être le même organisme vivant qu’un autre décrit sous un autre nom. Le taxon ayant la priorité (le plus souvent parce qu’il a été décrit avant) sera alors le « Taxon valide » et le(s) autres seront alors considéré(s) comme des synonymes (non valides).
    La synonymie peut s’appliquer à (pratiquement) n’importe lequel des « niveaux taxonomiques ». Je peux avoir une Synonymie de Genres (Genus), d’espèce (Species), … raison pour laquelle j’ai dû encoder tous les « niveaux » (dans l’exemple plus haut).
    Mais, pour ma base de données, les « synonymes » (non valides) doivent, mis à part le fait qu’ils seront signalés comme synonymes, être considérés comme des enregistrements « normaux » car une autre étude nous dira peut-être dans le futur (beaucoup de choses changent à l’heure actuelle avec les analyses ADN par exemple) que, finalement, tel ou tel synonyme n’en est pas un mais que c’est bien un taxon valide (l’inverse est possible également).
    Je dois donc lier certains enregistrements (dans leur entièreté) à d’autres se trouvant dans la même table (tblTaxa).

    Voilà, en espérant ne pas avoir plus embrouillé les choses en essayant de les expliquer...

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Merci de l'explication.

    Si tu considères les sujets clos, merci d'appuyer sur le bouton en bas de discussion.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Enregistrer Date et Heure des donnés d'une table vers une autre
    Par piwa6291 dans le forum Access
    Réponses: 8
    Dernier message: 20/03/2015, 14h41
  2. [AC-2003] enregistrement des données d'une table vers une autre
    Par kovrov dans le forum Access
    Réponses: 1
    Dernier message: 26/12/2010, 10h45
  3. Transférer des données d'une table à une autre
    Par picoloto dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/12/2005, 10h01
  4. TRansférer des données d'une table à l'autre
    Par kernel57 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 06/10/2005, 14h05
  5. concatenation des données d'une table dans une autre
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/10/2004, 11h38

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