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

Access Discussion :

Problème sur requête à jonctions multiples: affichage de lignes erronées


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Avril 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2024
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Problème sur requête à jonctions multiples: affichage de lignes erronées
    Je tente de réaliser des requêtes basées sur plusieurs tables jointes afin de sortir des états pour impression mais la requête me donne des résultats erronés ...

    Je m'explique:

    J'ai 3 tables, liées chacune entre elles par des tables de jonctions. Je désire éditer des listings reprenant les infos des trois tables mais chacun basé sur une table en particulier.

    Mes Tables possèdent toutes une clef primaire et se nomment Table_Sondages, Axes et Structures. Et mes tables de jonctions mettent en évidence les relations existantes entres les différentes tables : Jonction_Sd/St, Sd/Axe et St/Axe, qui possèdent chacune une clef primaire, indépendante des champs de liaisons. Ils s'agit donc de relations de plusieurs à plusieurs.

    Les sondage sont numéroté de 101 à 999, les structures de 1001 à n et les axes de A à Z.

    Mon problème semble provenir du fait que les tables sont liées 2par2 :

    par exemple:
    - pour le sondage n°101, j'ai une relation avec les axes A et B et les structures 1001 et 1002,
    - par contre l'axe A est lié à la structure 1001 et l'axe B à la structure 1002 .
    - le sondage n°102 est lié à la structure 1003 mais à aucun axe,
    - le sondage n° 103 est lié à l'axe C mais à aucune structure

    Dans une requête à 3 colonnes : Sondages ; Axes; Structures :
    Je devrais donc avoir 4 lignes:

    -101;A;1001
    -101;B;1002
    -102; ;1003
    -103;C;

    Or, la requête rajoute des lignes erronées :

    -101;A;1001
    -101;A;1002
    -101;B;1001

    -101;B;1002
    -102; ;1003
    -103;C;

    Y aurait-il moyen de mettre les différentes tables et jonctions en relation circulaires?
    Ou de créer des conditions d'affichage des champs secondaires liés à l'existence d'une relation effective entre ceux-ci?

    J'ai fait des tentatives de jonctions circulaires en modifiant tous les paramètres de propriétés des jointures, mais à chaque fois, je suis bloqué par un problème de jointures externes ambiguës. J'ai également tenté de créer des requêtes intermédiaires mais le problèmes subsiste. De plus, avec ces requêtes intermédiaires cela me crée en plus un très grand nombre de doublons que je dois éludés en forçant les valeurs distinctes dans les propriétés de la requête ...

    Merci d'avance pour votre aide,

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 344
    Points : 19 590
    Points
    19 590
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Il faudrait une vue de la requête en mode création avec les liaisons, et également une vue de la fenêtre relations de la base.

    par exemple:
    - pour le sondage n°101, j'ai une relation avec les axes A et B et les structures 1001 et 1002,
    - par contre l'axe A est lié à la structure 1001 et l'axe B à la structure 1002 .
    A première vue, dans votre requête, vous devez mettre en relation les tables avec les tables associations intermédiaires :

    table_sondages 1<--->n [table_Sd/Axe] n<--->1 table_axes 1<--->n [table_Axe/St] n<--->1 table_structures

    Pas de relation directe entre table_sondages et table_axes ou table_structures

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Candidat au Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Avril 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2024
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour et merci pour le retour rapide,

    Voici la vue des relations de base, la vue des relations de la requête et le résultat de la requête.

    Nom : 01.png
Affichages : 47
Taille : 94,3 KoNom : 02.png
Affichages : 51
Taille : 36,5 KoNom : 03.png
Affichages : 50
Taille : 32,0 Ko



    J'ai essayé de masquer les champs erronés en utilisant une fonction Iif et en conditionnant le résultat à la présence ou absence d'enregistrement dans les champs issus des tables de jonctions mais ça masque aussi les champs de la table de base qui ne présentent pas de relation ...

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 344
    Points : 19 590
    Points
    19 590
    Billets dans le blog
    65
    Par défaut
    Dans votre requête, essayer plutôt de réaliser une liaison continue, plutôt qu'une liaison en V (sur le même champ ID_Sondage) qui multiplie les lignes :

    table_sondages 1<--->n [Jonction_Sd/Axe] n<--->1 table_axes 1<--->n [Jonction_St/Axe] ..etc..
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Candidat au Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Avril 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2024
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Qu'entendez vous par liaison continue?

    Si je fais une liaison qui transite depuis la Table_Sd vers la Jonction_Sd_St en passant par la Jonction_Sd_Axe, je rencontre le même problème et cela cause en plus l'absence d'enregistrements de sondages non-liés car il y a exclusion d'enregistrement avec le "Left Join" qui relie les deux Jonction...

    Nom : 07.png
Affichages : 46
Taille : 26,1 Ko

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 344
    Points : 19 590
    Points
    19 590
    Billets dans le blog
    65
    Par défaut
    Il faudrait essayer d'ajouter toutes les tables dans une nouvelle requête (les relations devrait s'ajouter automatiquement), puis d'insérer ensuite les champs que vous souhaitez afficher.

    D'ailleurs si vous regardez l'ensemble de vos relations vous pouvez remarquer que c'est continu ou cyclique.
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

Discussions similaires

  1. [XL-2013] multiples Calculs par ligne sur une feuille
    Par Sebphyto dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 06/06/2015, 20h26
  2. Réponses: 9
    Dernier message: 18/08/2005, 13h16
  3. Clic sur les select multiple
    Par mic79 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/07/2005, 15h44
  4. [Eclipse 3.0.1] Affichage des lignes
    Par OverCat dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 10/03/2005, 07h32
  5. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h28

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