|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : décembre 2006 Messages : 133 ![]() |
Bonjour à tous
Le problème que je m'en vais vous souligné se presente comme suit: j'ai une table PERSONNE dont j'aimerais faire une requete qui me donne les déscendants par personne où le sexe est "femme". j'ai d'abord fait une relation avec une autre table PERSONNE ayant comme clé secondaire la primaire de l'autre. celà avait l'air de marcher mais pas du tout. en fait le problème se pose au niveau de la saisie.dans ce cas une meme personne devrait etre saisi dans les ascendants et dans les descendant. une autre idée a été d'ajouter une propriété parent dans la table PERSONNE,propiriété qui ne sera pas une clé.Le probleme qui s'est posé est qu'on peut saisir pour une personne un parent qui n'existe pas dejà. ce que je ne veux pas. j'aimerais en definitive savoir comment gerer une relation reflexive. Merci de votre reponse
__________________
Celui qui est juste dans les petites choses l'est dans les grandes |
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 482 ![]() |
Ta table devrait avoir au moins les deux champs suivants :
IdPersonne (Clef primaire) IdParrent (Parrent peut être nul) Dans ta fenêtre des relations tu affiche 2 fois la table personne, ça va te créer Presonne et Personne_1. Tu fais ensuite une relation d'intégrité entre Personne et Personne_1, en reliant Personne.IdParrent à Personne_1.IdPersonne. Autorisé Null dans IdParent te permets d'entrer les personnes dont tu ne connais pas le parent, c'est une relation de cardinalité : 0-n. A+ |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mai 2006 Messages : 75 ![]() |
j'imagine qu'il faut 1 table parent,une table enfant
mais attention si il y a des doublons dans la table parent (2 famille de meme nom) dans ce cas il faut creer une cle unique et c'est sur cette clef qu'il faut indexer les enfants le dernier cas si un enfant a lui-meme un enfant il faudrait avoir une 3° table:arriere-enfant indexée par enfant....etc c'est a mon avis la seule solution pour touver la filiation complete d' un arriere enfant.(requete contenant les 3 tables parent,enfant,arriere-enfant) j'espere avoir bien repondu a ta question |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : mai 2005 Messages : 3 419 ![]() |
une seule table suffit
idpersonne idparent (éventuellement null) j'oubliais le sexe qui est pourtant indispensable. le problème est ensuite de savoir comment on nourrit les tables on prévoit pour la saisie de idparent une liste avec les id existants cela limite la saisie
__________________
Elle est pas belle la vie ? |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : décembre 2006 Messages : 133 ![]() |
Bonjur à tous
je vous remercie pour vos reponses. Mon probleme a été résolu avec une table. exactement comme Random l'a dit.En mode creation dans l'onglet liste de choix j'ai fait une requete SQL SELECT CodePersonne FROM PERSONNE.C'est bon Mais un autre problème c'est posé. c'est qu'il est possible que le parent d'une Personne soit elle meme.Bizare non? J'ai essaye de modifier la requete en ajoutant la condition Parent<>CodePersonne. Mais la liste de choix devient vide:donc requete probablement fausse. Je me demande donc comment faire pour qu'une personne ne soit son propre parent ou du moins quelle est la bonne requete? Merci
__________________
Celui qui est juste dans les petites choses l'est dans les grandes |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() |
dans les propriétés de la table (de la TABLE, pas du CHAMP), tu mets un valide si qui fait que ton ID est forcément différent du IDParent
C'est tout (avec un message si erreur en plus pour faire plus clair
__________________
1formaxion, une formation de qualité, des formateurs compétents Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
Copyright © 2000-2012 - www.developpez.com