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

Requêtes et SQL. Discussion :

Créer une requête imbriquant deux INNER JOIN [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Créer une requête imbriquant deux INNER JOIN
    Bonsoir,

    J'ai créé deux tables :
    1) Une table dossier, avec notamment un numéro de dossier
    2) Une table clients, avec notamment un numéro de client et un nom.

    Une troisième table fait le lien entre les deux, puisqu'un dossier peut regrouper plusieurs clients et un client être impliqué dans plusieurs dossiers. Elle contient deux champs : numéro de dossier et numéro de client.

    Je veux qu'en saisissant un numéro de dossier, ma requête me retourne le nom de tous les clients liés.

    Voilà ma requête :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT TBL_CLIENT.nom_client
    FROM TBL_CLIENT
    INNER JOIN TBL_JOINT2 ON TBL_CLIENT.num_client = TBL_JOINT2.num_client
    INNER JOIN TBL_DOSSIER ON TBL_JOINT2.num_dossier = TBL_DOSSIER.num_dossier
    WHERE TBL_DOSSIER.num_dossier = vNDossier

    Où vNDossier est une variable contenant le numéro de dossier.

    Elle ne fonctionne pas...

    Avez-vous une idée ? Merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 604
    Points : 34 279
    Points
    34 279
    Par défaut
    salut,
    il faut ajouter des parenthèses pour que ca soit bien compris.
    essaie :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT TBL_CLIENT.nom_client
    FROM (TBL_CLIENT
    INNER JOIN TBL_JOINT2 ON TBL_CLIENT.num_client = TBL_JOINT2.num_client)
    INNER JOIN TBL_DOSSIER ON TBL_JOINT2.num_dossier = TBL_DOSSIER.num_dossier
    WHERE TBL_DOSSIER.num_dossier = vNDossier
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Merci pour cette réponse rapide.

    Même avec les parenthèses, cela ne fonctionne pas.

    Sachant que je n'ai pas de messages d'erreur, mais aucun résultat alors que je devrais en avoir deux...

    Pour un numéro de dossier 709001, l'assistant pour la création de requêtes d'Access me donne cette formule :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TBL_CLIENT.nom_client
    FROM TBL_DOSSIER INNER JOIN (TBL_CLIENT INNER JOIN TBL_JOINT2 ON TBL_CLIENT.num_client = TBL_JOINT2.num_client) ON TBL_DOSSIER.num_dossier = TBL_JOINT2.num_dossier
    WHERE (((TBL_DOSSIER.num_dossier)=709001));

    qui marche très bien : elle me retourne mes deux clients...

    Mais si je reprend cette formule dans ma procédure, elle ne fonctionne plus (même sans changer 709001 par une variable)...

    ???

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 604
    Points : 34 279
    Points
    34 279
    Par défaut
    il s'agit alors d'utiliser un paramètre et de spécifier que c'est un entier
    voir la syntaxe exemple proposée dans la
    http://access.developpez.com/faq/?page=SQL#ReqParamVar
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Merci pour le lien.

    Mais mon but est de mettre le résultat de la requête dans un contrôle de liste. Donc passer par DAO ne m'arrange pas trop ?

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 604
    Points : 34 279
    Points
    34 279
    Par défaut
    d'accord, mais ton vNDossier tu vas bien le chercher quelque part alors ?
    une piste dans ce cas là : http://access.developpez.com/faq/?page=zdl#DepZdl
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Génial, ça marche !

    Merci beaucoup pour l'aide (et la patience )

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

Discussions similaires

  1. Comment créer une requête imbriquée sous BO ?
    Par le_om dans le forum Débuter
    Réponses: 8
    Dernier message: 16/03/2012, 13h03
  2. [WD12] Erreur dans une Requête avec plusieurs INNER JOIN
    Par Raphael1980 dans le forum WinDev
    Réponses: 3
    Dernier message: 12/06/2009, 15h22
  3. [Access] Problème dans une requête SQL avec INNER JOIN ?
    Par bds2006 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/06/2006, 10h57
  4. [SQL] Requête dans une requête...avec des INNER JOIN!
    Par PedroBD dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 06/04/2006, 08h26
  5. une requête avec plusieurs INNER JOIN, cmt faire ?
    Par elhosni dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/01/2006, 17h55

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