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 :

Requête Union sur tables comportant chacune une liste déroulante


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2016
    Messages : 59
    Points : 30
    Points
    30
    Par défaut Requête Union sur tables comportant chacune une liste déroulante
    Bonjour la Team Dvp

    j'ai cette requête union

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ServicePK as IdOperation, N°Facture as FactureOperation, ServiceNom as DesignationOperation,QteService as QteOperation, PrixService as PrixOperation, RemiseService as RemiseOperation  FROM tblDetailServices 
    UNION SELECT  N°DetailFact as IdOperation,N°Facture as FactureOperation, Articles AS DesignationOperation, Qtes as QteOperation, Prix as PrixOperation, Remise as RemiseOperation FROM tblDetailsVentes
    ORDER BY IdOperation;
    pour le résultat suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    IdOperation	FactureOperation	DesignationOperation	QteOperation	PrixOperation	RemiseOperation
    3	         F201807120001	               2	                2	         4500                0
    4	         F201807120002	               1	                1	         3000         	0
    8	         F201807190001	               1	                2	         3000         	1000
    139	         F201807120001	               1	                1	         25312	        0
    141	         F201807120002	               2	                2	         19550	        1500
    145	         F201807190001	               2	                4	         25312	        10000
    le problème: le champs DesignationOperation me renvoit la clé primaire au lieu du nom.

    structure des tables:

    *tblDetailServices:
    -ServicePK (numauto)
    -N°Facture(zone de liste déroulante sur table ventes)
    -ServiceNom(zone de liste déroulante sur table services)
    -QtesService
    -PrixService
    -RemiseService

    *tblDetailsVentes:
    -N°detailFact (numauto)
    -N°Facture (zone de liste déroulante sur table ventes)
    -Articles (zone de liste déroulante sur table produits)
    -qtes
    -prix
    -remise

    Comment modifier le code SQL de la requête union pour avoir, dans le champs DesignationOperation, le nom au lieu de la clé primaire?

    Au plaisir de vous lire

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    il faut ajouter la table qui contient le libellé et faire une jointure. Sauf si tu maitrises bien le SQL, fait-le pour une seule table dans une nouvelle requête pour avoir la bonne syntaxe, puis copie dans ta requête union la partie INNER JOIN dont tu as besoin
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Modérateur

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

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

    Juste une explication du phenomene :

    le problème: le champs DesignationOperation me renvoit la clé primaire au lieu du nom.
    Les listes deroulantes sont des elements d'interface utilisateur. Elles utilisent une astuce d'affichage (largeur de colonne a 0) pour masque la valeur reelement enregistree dans la table.
    Personnellement je recommande de les confiner aux formulaires et rapports et dans les tables et les requetes d'afficher la valeur qui est reelement la. Cela facilite la maintenance et le debugage.
    Si tu tiens aux listes, tu peux definir 2 colonnes : Clef | Valeur Texte et mettre 1cm pour la 1ere colonne. Access affichera la clef mais en cliquant sur le champ tu peux avoir acces a la valeur texte associee.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour marot_r,
    Personnellement je recommande de les confiner aux formulaires et rapports et dans les tables et les requetes d'afficher la valeur qui est reelement la. Cela facilite la maintenance et le debugage.
    complètement d'accord avec toi. Tout comme les champs multivalués, ce sont des nouveautés qui sont sensés apporter un confort à l'utilisateur mais qui, au final, posent plus de problèmes qu'ils n'en résolvent quand on ne sait pas comment cela fonctionne.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2016
    Messages : 59
    Points : 30
    Points
    30
    Par défaut
    merci pour vos différentes interventions.
    en espérant avoir bien suivi les conseils de tee_grandbois, j'ai le même résultat.

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT tblDetailServices.*
    FROM tblDetailServices LEFT JOIN reqListeServices ON tblDetailServices.ServiceNom = reqListeServices.DesignationService
    UNION ALL SELECT distinct tblDetailsVentes.*
    FROM tblProduits INNER JOIN tblDetailsVentes ON tblProduits.ProduitPK = tblDetailsVentes.Articles;
    des indices?

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    cela ne ressemble pas à la requête d'origine. Quelle table contient le libellé ? il faut, bien évidemment ajouter le champ désignation de cette table pour avoir le libellé ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2016
    Messages : 59
    Points : 30
    Points
    30
    Par défaut
    Quelle table contient le libellé ?
    les libellés sont contenus dans les tables Services et Produits.
    il faut, bien évidemment ajouter le champ désignation de cette table pour avoir le libellé ...
    J'essaye et reviens vers vous.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2016
    Messages : 59
    Points : 30
    Points
    30
    Par défaut
    Bonjour !

    au final, j'ai opté pour le conseil de marot_r
    Personnellement je recommande de les confiner aux formulaires et rapports et dans les tables et les requetes d'afficher la valeur qui est reelement la. Cela facilite la maintenance et le debugage.
    et j'ai le résultat attendu.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    IdOperation	FactureOperation	DesignationOperation	QteOperation	PrixOperation	RemiseOperation
    3	        F201807120001	             Coupe Simple	       2	         3000	0
    4	        F201807120002	             Coupe Simple	       1	         3000	0
    8	        F201807190001        	     Coupe Simple	       2	         3000	1000
    10	        F201808020001	             Coupe Simple	       1	         3000	0
    139	        F201807120001 	     Bracelet SPYDER	       1	         25312	0
    141	        F201807120002	             Gel gommant	       2	         19550	1500
    145	        F201807190001 	     Bracelet SPYDER	       4	         25312	10000
    147	        F201808020001	             Bracelet SPYDER	       1	         25312	0
    à marot_r et tee_grandbois

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

Discussions similaires

  1. [Toutes versions] Requête impossible sur champ qui est une liste déroulante.
    Par fxbdl dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 24/07/2015, 10h34
  2. [AC-2010] Requête UNION sur tables attachées -- Problème ODBC
    Par PetitChris dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 26/03/2015, 11h05
  3. Info Bulle sur les elements d'une liste déroulante
    Par ReaseT dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/10/2006, 12h01
  4. Se positionner sur un item d'une liste déroulante
    Par pyxosledisciple dans le forum IHM
    Réponses: 1
    Dernier message: 08/02/2006, 20h19
  5. Réponses: 2
    Dernier message: 16/10/2004, 14h33

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