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 :

Pb avec IIF dans requete


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Pb avec IIF dans requete
    Bonjour a tous!

    Je cherche dans une requète selection a tenir compte de l'état d'un controle (Option6) du formulaire FPays qui lance la requète.

    Tous mes champs sont des chaines de caractères.

    Comme critère du champ "Continent" dans la requète, j'ai saisi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IIf([Forms]![FPays].[Option6],"Europe","*")
    Si le bouton Option6 du formulaire FPays est activé (valeur TRUE), alors la requète ne retient que les enregistrements pour lesquels le champ "Continent" est égal a "Europe".

    Mon problème vient du cas inverse: Je n'arrive pas a obtenir de la requète l'ensemble des enregistrements (quels que soient le continent) si Option6 n'est pas activé (valeur FALSE). La requète ne me renvoie aucun enregistrement. Bref, j'ai du mal a lui faire comprendre que je veux que les enregistrements "Europe" si Option6 est activé et tous les enregistrements dans le cas contraire.

    Merci de vos lumières!

    Cordialement.

    Nota: je suis en Access 2003.

  2. #2
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Oui, le problème vient certainement de "*"... Mais que mettre a la place pour faire comprendre que je souhaite obtenir tous les enregistrements???

  3. #3
    Inscrit
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Points : 104
    Points
    104
    Par défaut
    essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VraiFaux([Forms]![FPays].[Option6]= True;"Europe")

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    J'ai bien essayé cette solution mais le résultat est le meme: pas d'enregistrements retournées si Option6 <> "Europe"...

  5. #5
    Inscrit
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Points : 104
    Points
    104
    Par défaut
    je pense qu'il faut chercher comment modifier le critère de la requête source
    lors [Forms]![FPays].[Option6]= True ======> critère = "Europe"
    .......[Forms]![FPays].[Option6]= False======> critère = ""

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    On est tous d'accord mais comment lui faire gober cela? That is the question...

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    et en mettant ceci dans la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ...
    WHERE Continent LIKE IIf([Forms]![FPays].[Option6],"Europe","*")
    ça dit quoi ?

    Philippe

  8. #8
    Invité
    Invité(e)
    Par défaut
    Je suppose que ta requête est exploiteé dans un formulaire.
    Dans ce cas à l'ouverture de ce formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    If [Forms]![FPays].[Option6]= True Then
     
    MyForm.RecordSource = "Select * from Matable Where Continent = 'Europe'" 
    Else
    MyForm.RecordSource = "Select* from MaTable"
    End if
    Je ne sais pas si cela correspond à ce que tu veux faire, car c'est une autre façon d'aborder le problème.

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Merci Philben. Ton conseil semble etre judicieux. Ca fonctionne parfaitement ainsi.

    Merci egalement aux autres contributeurs!

    Cordialement.

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

Discussions similaires

  1. [AC-2013] Calcule avec Iif dans un formulaire
    Par DidoFido dans le forum Access
    Réponses: 10
    Dernier message: 05/08/2014, 10h46
  2. [SQL-Server] Erreur avec GetArray dans requete adoDB
    Par Vanessa48 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/09/2011, 22h14
  3. Prob avec guillemet dans requete!
    Par angelevil dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/06/2009, 17h57
  4. Encore un probleme avec IIF dans requete
    Par USnico dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 27/11/2008, 14h00
  5. [Debutant] Fonction Iif dans requete
    Par Lanig22 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 07/01/2007, 22h13

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