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] : renvoyer une valeur par défaut en cas d'absence de résultat [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 41
    Points
    41
    Par défaut [Requête Union] : renvoyer une valeur par défaut en cas d'absence de résultat
    Bonjour à tous

    Après plusieurs recherches infructueuses sur le net et sur ce forum je sollicite donc votre aide.

    J'ai une base de données avec une table de saisie dans laquelle l'utilisateur saisie une liste de référence. Ensuite une requête Union "regarde" dans des tables "sources" si les références saisies existent dans ces tables. Les références qui sont communes à la table de saisie et les tables "sources" sont alors affichées.

    Voici ma question : j'aimerais que lorsque une des références saisies n'est pas connue, Access retourne la valeur "unknown", avec un résultat dans ce style :


    P/N Decription Date

    ref 1 xxxxx xxxxx
    ref 2 unknown
    ref 3 xxxxx xxxxx
    ref 4 xxxxx xxxxx

    Je ne connais pas bien Access et ce qui me semble le plus simple est de retourner la valeur "unknown" pour chacune des tables "sources" et ensuite supprimer les doublons dans la requête Union. Est-ce possible de faire comme cela?

    L'autre idée que j'ai est de créer un bouton avec le code suivant pour faire la requête Union via VBA et spécifier "unknown" si uen référence n'est pas trouvée. Mais je ne sais absolument pas comment faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim SQL As String
     
        SQL = "SELECT [Article], [Cross1], [description]FROM [R_Concurrents]UNION SELECT [Article], [Crossdivers], [description]FROM [R_83723]UNION SELECT [Article], [CodeArticle], [description]FROM [R_PN en machine]UNION SELECT [CodeArticleCLient], [CodeArticle], [ArticleMarquage]FROM [R_Normes]"
    Mais après je ne sais pas comment faire.

    Merci par avance pour votre aide

    Ludo

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 335
    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 335
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Salut,

    En plus de ta requête union sur les tables sources (reqUnion),
    Tu peux peut-être utiliser un LEFT JOIN entre la table de saisie (tblSaisie) et la requête union (reqUnion) du style:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select  tblSaisie.Ref,IIf(reqUnion.[Description] is null,"UnKnown",reqUnion.[Description]) as Descript,...
    From tblSaisie left join reqUnion on tblSaisie.Ref=reqUnion.Ref

    A vérifier
    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
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 41
    Points
    41
    Par défaut
    Merci beaucoup pour ton aide, maintenant j'ai lié ma table de saisie à ma requête Union en faisant une autre requête avec un left joint. Et là, effectivement les refs non trouvées dans toutes les autres tables s'affichents. Et ça c'est déjà très bien.

    Toutefois je n'arrive pas à renvoyer la valeur par défaut "Unknown", j'ai pris ton code comme ci-dessous (R_Recherche_complète est ma requête Union) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Table de saisie].article, R_Recherche_complète.Cross1, R_Recherche_complète.description,
    IF [R_Recherche_complète].Cross1 IS NULL, "Unknown", [R_Recherche_complète].Cross1 As Descript,
    FROM [Table de saisie] LEFT JOIN R_Recherche_complète ON [Table de saisie].article = R_Recherche_complète.Article;
    Access me dit : Erreur de syntaxe (opérateur absent) dans l'expression 'IF [R_Recherche_complète].Cross1 IS NULL'

    J'ai du me planté quelque part mais je ne sais pas où.

    A+

    Ludo

  4. #4
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 41
    Points
    41
    Par défaut
    C'est bon j'avais fait des erreurs dans la saisie du code SQL. Vraiment un GRAND MERCI pour ton aide et la rapidité de ta réponse

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/04/2014, 17h32
  2. Réponses: 10
    Dernier message: 04/11/2008, 14h30
  3. Réponses: 2
    Dernier message: 15/03/2006, 09h44
  4. [PEAR][HTML_QuickForm] Attribution d'une valeur par défaut à un select
    Par mohican13 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 24/02/2006, 08h08
  5. Réponses: 6
    Dernier message: 14/02/2006, 20h53

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