Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

relation réciproque entre 2 enregistrements d'une même table

3 réponses
Avatar
Hylcourt-Lefuret
Tout d'abord un grand merci à "pgz" qui a apporté un premier élément de
réponse à mon problème. Toutefois je reformule ma question car je suis
toujours bloqué (sans doute en raison de mes connaissances limitées dans
Access !

A partir d'une table "tbl-Dossier" avec [Id-Dossier] NumAuto / clé primaire
je souhaite créer une (ou plusieurs) relation(s) dans un champs spécifique
décrivant la relation, avec n'importe quels autres dossiers de la table.
J'aimerais que lorsque je saisi cette relation entre le dossier "A" et le
dossier "B" à partir du dossier "A" (par exemple) cette relation soit
effective et "visible" lorsque je consulte le dossier "B"
En fait, comment créer en une seule saisie une relation réciproque?
Merci d'avance aux bonnes volontés qui voudront bien m'éclairer sur le sujet.
--
Hylcourt-Lefuret

3 réponses

Avatar
pgz
Bonjour.

Voici quelques données pour une démo simplifiée de ton pb, à adapter ensuite
au contexte de ton projet.

Les tables :
1. tblDossiers : IdDossier (Num auto, clé); TitreDossier (Texte)
2. tblLiaisonsDossiers : IdLiaison (Num auto, clé); DossierA (Numérique
long, indexé avec doublons); DossierB (Numérique long, indexé avec doublons)

Formulaires:
1.frmDossiers
Mode unique
source = tblDossiers
Contrôles : IdDossier (textbox); TitreDossier (textbox); SFDossiersLies
(sous formulaire, contenu = frmDossiersLies, Père = IdDossier, Fils = DA)

2. frmDossiersLies
Mode continu
Source : SELECT tblLiaisonsDossiers.DossierA as DA,
tblLiaisonsDossiers.DossierB as DB,tblDossiers.TitreDossier as TD FROM
tblLiaisonsDossiers INNER JOIN tblDossiers ON tblLiaisonsDossiers.DossierB =
tblDossiers.IdDossier UNION SELECT tblLiaisonsDossiers.DossierB as
DA,tblLiaisonsDossiers.DossierA as DB, tblDossiers.TitreDossier as TD FROM
tblLiaisonsDossiers INNER JOIN tblDossiers ON tblLiaisonsDossiers.DossierA =
tblDossiers.IdDossier;
Contrôles : DA (textbox); TD (Textbox)

ET voilà. Si une relation Dossier 3 - Dossier 7 est définie dans la
tblLiaisonsDossiers, quand le dossier 7 est affiché dans le formulaire, le
sous formulaire affiche le dossier 3, et inversement.

Reste à ajouter une procédure d'ajout de liaison (par ex une liste
déroulante dans le formulaire) et une procédure de suppression de liaison (
par ex sur double click sur un dossier du sous-formulaire).

Bon courage,

--
pgz

"Ce qui se conçoit mal s''exprime obscurément et les mots pour le dire
arrivent péniblement." - dicomoche.net
_____________________________
pgz.conseil at orange.fr



Tout d'abord un grand merci à "pgz" qui a apporté un premier élément de
réponse à mon problème. Toutefois je reformule ma question car je suis
toujours bloqué (sans doute en raison de mes connaissances limitées dans
Access !

A partir d'une table "tbl-Dossier" avec [Id-Dossier] NumAuto / clé primaire
je souhaite créer une (ou plusieurs) relation(s) dans un champs spécifique
décrivant la relation, avec n'importe quels autres dossiers de la table.
J'aimerais que lorsque je saisi cette relation entre le dossier "A" et le
dossier "B" à partir du dossier "A" (par exemple) cette relation soit
effective et "visible" lorsque je consulte le dossier "B"
En fait, comment créer en une seule saisie une relation réciproque?
Merci d'avance aux bonnes volontés qui voudront bien m'éclairer sur le sujet.
--
Hylcourt-Lefuret


Avatar
Hylcourt-Lefuret
Super ! Sincèrement merci pour ton aide, cela fonctionne parfaitement. Je
pense que la solution était au dessus de mes compétences. Encore merci !
--
Hylcourt-Lefuret



Bonjour.

Voici quelques données pour une démo simplifiée de ton pb, à adapter ensuite
au contexte de ton projet.

Les tables :
1. tblDossiers : IdDossier (Num auto, clé); TitreDossier (Texte)
2. tblLiaisonsDossiers : IdLiaison (Num auto, clé); DossierA (Numérique
long, indexé avec doublons); DossierB (Numérique long, indexé avec doublons)

Formulaires:
1.frmDossiers
Mode unique
source = tblDossiers
Contrôles : IdDossier (textbox); TitreDossier (textbox); SFDossiersLies
(sous formulaire, contenu = frmDossiersLies, Père = IdDossier, Fils = DA)

2. frmDossiersLies
Mode continu
Source : SELECT tblLiaisonsDossiers.DossierA as DA,
tblLiaisonsDossiers.DossierB as DB,tblDossiers.TitreDossier as TD FROM
tblLiaisonsDossiers INNER JOIN tblDossiers ON tblLiaisonsDossiers.DossierB =
tblDossiers.IdDossier UNION SELECT tblLiaisonsDossiers.DossierB as
DA,tblLiaisonsDossiers.DossierA as DB, tblDossiers.TitreDossier as TD FROM
tblLiaisonsDossiers INNER JOIN tblDossiers ON tblLiaisonsDossiers.DossierA =
tblDossiers.IdDossier;
Contrôles : DA (textbox); TD (Textbox)

ET voilà. Si une relation Dossier 3 - Dossier 7 est définie dans la
tblLiaisonsDossiers, quand le dossier 7 est affiché dans le formulaire, le
sous formulaire affiche le dossier 3, et inversement.

Reste à ajouter une procédure d'ajout de liaison (par ex une liste
déroulante dans le formulaire) et une procédure de suppression de liaison (
par ex sur double click sur un dossier du sous-formulaire).

Bon courage,

--
pgz

"Ce qui se conçoit mal s''exprime obscurément et les mots pour le dire
arrivent péniblement." - dicomoche.net
_____________________________
pgz.conseil at orange.fr



Tout d'abord un grand merci à "pgz" qui a apporté un premier élément de
réponse à mon problème. Toutefois je reformule ma question car je suis
toujours bloqué (sans doute en raison de mes connaissances limitées dans
Access !

A partir d'une table "tbl-Dossier" avec [Id-Dossier] NumAuto / clé primaire
je souhaite créer une (ou plusieurs) relation(s) dans un champs spécifique
décrivant la relation, avec n'importe quels autres dossiers de la table.
J'aimerais que lorsque je saisi cette relation entre le dossier "A" et le
dossier "B" à partir du dossier "A" (par exemple) cette relation soit
effective et "visible" lorsque je consulte le dossier "B"
En fait, comment créer en une seule saisie une relation réciproque?
Merci d'avance aux bonnes volontés qui voudront bien m'éclairer sur le sujet.
--
Hylcourt-Lefuret




Avatar
Hylcourt-Lefuret
Je confirme que la liaison fonctionne bien dans les deux sens mais il subsite
un petit problème que j'aimerais résoudre:
Comment éviter de saisir des doublons dans les liens entre dossiers, quel
que soit l'ordre de saisie des dossiers?

Exemple: je saisis "dossierA" lié au "dossierB" Comment éviter la saisie
ultérieure d'un doublon (même ordre A-B ou ordre inversé B-A)

Merci pour votre aide.

--
Hylcourt-Lefuret



Tout d'abord un grand merci à "pgz" qui a apporté un premier élément de
réponse à mon problème. Toutefois je reformule ma question car je suis
toujours bloqué (sans doute en raison de mes connaissances limitées dans
Access !

A partir d'une table "tbl-Dossier" avec [Id-Dossier] NumAuto / clé primaire
je souhaite créer une (ou plusieurs) relation(s) dans un champs spécifique
décrivant la relation, avec n'importe quels autres dossiers de la table.
J'aimerais que lorsque je saisi cette relation entre le dossier "A" et le
dossier "B" à partir du dossier "A" (par exemple) cette relation soit
effective et "visible" lorsque je consulte le dossier "B"
En fait, comment créer en une seule saisie une relation réciproque?
Merci d'avance aux bonnes volontés qui voudront bien m'éclairer sur le sujet.
--
Hylcourt-Lefuret