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 :

Critère "Condition" dans requète.


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2018
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 125
    Points : 61
    Points
    61
    Par défaut Critère "Condition" dans requète.
    Bonjour à toutes et tous
    J'aurais voulu savoir si on pouvait mettre dans une requête un critère "condition de type "SI".
    J'ai une requête avec 2 tables (pour faire une sélection) et un résultat qui est OK. Sauf qu'il est possible de ne pas avoir de Nom pour une référence donnée.
    En gros, dans ma requête, je voudrais que si il y a un "Nom", il me le met, si il y en a pas, il me met "Inconnu"
    J'ai essayé dans critère:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IFF(Isnull([Nom],"Inconnu",[Nom])
    Il me donne une erreur.
    Auriez- vous une solution?

  2. #2
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    La bonne syntaxe c'est iif(IsNull([Nom]);"Inconnu";[Nom])
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  3. #3
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2018
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 125
    Points : 61
    Points
    61
    Par défaut
    Bonjour Bertiny,
    Je viens de tester est...

    ça ne fonctionne pas, il me donne uniquement les "Nom" connus, les "Nom" inconnus ne sont plus présents.
    Je me suis permis d'inverser [Nom] et "Inconnu# pour voir et dans l'autre sens, j'ai que les Noms.
    Donc peut être la zone écrite de la formule : "Inconu" . Et pas bonne?

    Je ne percute plus là!

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 090
    Points : 5 207
    Points
    5 207
    Par défaut
    Citation Envoyé par Anthonydu62 Voir le message
    Bonjour à toutes et tous
    J'aurais voulu savoir si on pouvait mettre dans une requête un critère "condition de type "SI".
    J'ai une requête avec 2 tables (pour faire une sélection) et un résultat qui est OK. Sauf qu'il est possible de ne pas avoir de Nom pour une référence donnée.
    En gros, dans ma requête, je voudrais que si il y a un "Nom", il me le met, si il y en a pas, il me met "Inconnu"
    J'ai essayé dans critère:

    IFF(Isnull([Nom],"Inconnu",[Nom])


    Il me donne une erreur.
    Auriez vous une solution?
    Dans ce bout de code il y a 2 ( pour 1 )
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2018
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 125
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par nico84 Voir le message
    Dans ce bout de code il y a 2 ( pour 1 )
    Pas tout compris là

  6. #6
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2018
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 125
    Points : 61
    Points
    61
    Par défaut
    Ce que je voudrai dans cette requete (comme résultat) C'est avoir des "inconnu" au lieu des "Vides" ou "Null"
    Nom : Sans titre 2.jpg
Affichages : 74
Taille : 6,1 Ko

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 652
    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 652
    Points : 14 631
    Points
    14 631
    Par défaut
    bonjour,
    ça ne fonctionne pas, il me donne uniquement les "Nom" connus, les "Nom" inconnus ne sont plus présents.
    Je me suis permis d'inverser [Nom] et "Inconnu# pour voir et dans l'autre sens, j'ai que les Noms.
    pas très clair la dernière phrase...
    Mais peut-être que Nom est vide et pas nul, essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     iif([Nom]="";"Inconnu";[Nom])
    d'autre part, il faut éviter de nommer un champ Nom car c'est un mot réservé, Name étant une propriété de la plupart des objets dans Access, cela peut générer des erreurs ou des mauvais résultats dans les environnements acceptant la langue locale comme l'interface de création de requêtes, formulaires, états ...

    Mais si c'est vraiment nul , il faut préfixer Nom avec le nom de la table pour lever toute ambiguïté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     iif(IsNull(NomdelaTable.[Nom]);"Inconnu";NomdelaTable.[Nom])
    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 ?

  8. #8
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2018
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 125
    Points : 61
    Points
    61
    Par défaut
    Je viens de tester et il me donne comme résultat ce avec des Nom
    Et dans les deux formules
    Nom : Sans titre 3.jpg
Affichages : 79
Taille : 4,3 Ko

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 652
    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 652
    Points : 14 631
    Points
    14 631
    Par défaut
    oui mais c'est quoi le critère de sélection de la requête ? il faudrait montrer le SQL complet
    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 ?

  10. #10
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2018
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 125
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    oui mais c'est quoi le critère de sélection de la requête ? il faudrait montrer le SQL complet
    Donc voici le SQL avec la dernière formule proposée:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_ImportRef.Nom, T_Archivescan.NumCarte
    FROM T_ImportRef RIGHT JOIN T_Archivescan ON T_ImportRef.Carte2 = T_Archivescan.NumCarte
    WHERE (((T_ImportRef.Nom)=IIf([Nom]=Null,"Inconnu",[Nom])));

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 652
    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 652
    Points : 14 631
    Points
    14 631
    Par défaut
    cela n'a pas de sens ! il ne faut pas mettre l'expression comme critère mais dans la liste des champs:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT IIf(isnull([Nom]),"Inconnu",[Nom]) as Nom_New, T_Archivescan.NumCarte
    FROM T_ImportRef RIGHT JOIN T_Archivescan ON T_ImportRef.Carte2 = T_Archivescan.NumCarte;
    autre chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((T_ImportRef.Nom)=IIf([Nom]=Null,"Inconnu",[Nom])));
    [Nom]=Null est une syntaxe incorrecte, voici ce que j'ai proposé: [Nom]="" ce n'est pas la même chose
    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 ?

  12. #12
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2018
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 125
    Points : 61
    Points
    61
    Par défaut
    il faut mettre l'expression comme critère dans la liste des champs!!! Voila la solution

    Merci TEE_GRANDBOIS

    Grace à toi je viens d'apprendre que l'on peut mettre des conditions dans la zone "Champ" chose que je ne savais pas.

    Vous êtes Génial!!!

    Un grand merci à vous tous

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

Discussions similaires

  1. [MySQL] quotes dans requête ou échapement
    Par proximacent dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/01/2012, 17h20
  2. [SSRS][MDX] condition multiple dans requête
    Par stolx_10 dans le forum SSRS
    Réponses: 2
    Dernier message: 11/09/2008, 16h17
  3. Condition IIF dans requête
    Par fuzcrew dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/04/2008, 14h38
  4. [MySQL] Simples quotes dans requête mysql
    Par jean-pierre96 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/05/2007, 17h11
  5. Syntaxe condition VraiFaux dans requête
    Par SuperBlaireau dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 16/06/2006, 15h39

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