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 conditionnel requête


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Critère conditionnel requête
    Bonjour à tous,

    Je suis confronté à un problème que je n'arrive pas à résoudre

    J'ai un champ dans une table qui est un champ Pays
    J'ai un formulaire avec une liste déroulante ou je peux choisir le pays.

    J'aimerais faire en sorte que ma requête affiche les enregistrements qui concernent le pays que j'ai sélectionné dans ma liste, et que lorsque je n'entre rien dans ma liste, la requête me donne tous les enregistrements pays confondus.

    J'ai essayé de mettre une condition sur le critère de mon champ (dans la requête) mais ça ne marche que lorsque la liste déroulante n'est pas vide

    Merci de m'aider svp je galère depuis un bon moment!

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 35
    Points
    35
    Par défaut
    Pourquoi ne vérifies-tu pas simplement si ta liste n'est pas nulle à l'aide de la fonction IsNull ?

    Si elle l'est, tu fais une certaine requête, et si elle ne l'est pas, tu en fais une autre (en l'occurence celle qui a l'air de fonctionner chez toi).

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Le problème c'est que j'ai en fait 4 listes qui correspondent à 4 champs de ma requête et ça voudrai donc dire faire un grand nombre de requêtes... surtout que j'ai plusieurs requêtes pour lesquelles les mêmes critères s'appliquent...

    Donc ça serait bien si je n'avais pas à faire 24 requêtes au lieu de 6

    Merci quand même pour ta réponse!
    As-tu une autre idée?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 35
    Points
    35
    Par défaut
    Hum... et ces quatre listes ont des données de quatre tables différentes ?
    En fait, si je résume, il y a 6 requêtes, et chacune affiche les données correspondant aux 4 listes (donc 4 jeux de données ?) en faisant en sorte de tout afficher si la liste est vide.
    C'est bien ça ?


    Ou bien un seul jeu de données qui possède les critères de toutes les listes à la fois ?


    Je pense à 4 Recordset, mais je ne suis pas sûre que ce soit la solution la plus optimale, et surtout j'aimerai être sûre d'avoir compris avant de développer.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En fait j'ai quatre listes déroulante correspondant chacune à un champ de ma requête.
    Et ensuite j'ai 6 requêtes qui ont toutes ces 4 champs

    Donc dans mon formulaire j'ai quatre listes pour choisir:
    Société, Structure, Canal et Periode

    Puis j'ai 6 boutons correspondant chacun à une requête
    Ces 6 requêtes ont les champs Société, Structure, Canal et Periode
    Je veux qu'en appuyant sur le bouton, ACCESS me rende la requête filtré sur les 4 champs avec les valeurs entrés dans les listes.
    Et si la liste est vide je veux qu'il ne filtre rien du tout.

    J'ai trouvé une piste en mettant dans mes requêtes comme critère de filtre :
    Comme [formulaires]![société] par exemple et du coup il me filtre bien lorsque je met une valeur.
    Pour qu'il m'affiche tous les enregistrements, j'entre dans ma liste * et ça marche

    Si tu as une meilleure idée fais-en moi profiter

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 35
    Points
    35
    Par défaut
    Juste du bidouillage. Pour éviter d'avoir à taper "*", je te conseille de mettre la valeur contenue dans tes listes dans une variable, et d'intégrer la variable à ta requête SQL, plutôt que (si c'est bien ce que tu fais), mettre directement la valeur de la liste dans la requete. Comme ça, tu peux faire un test pour savoir si la liste est nulle, et si c'est le cas mettre la variable à "*" . Du coup, l'utilisateur peut laisser la liste vide.

Discussions similaires

  1. Requête avec critère conditionnel.
    Par kimosamet dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/03/2011, 22h37
  2. [AC-2003] Critères conditionnels dans une requête SELECT
    Par Cam78 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 10/05/2010, 10h51
  3. Critère de requête avec une zone de liste dans un formulaire
    Par Dehez dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2006, 13h49
  4. Réponses: 41
    Dernier message: 07/02/2006, 00h49
  5. Critère pour requête d'ajout
    Par Virgile59 dans le forum Access
    Réponses: 4
    Dernier message: 23/09/2005, 17h56

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