1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : juin 2018
    Messages : 3
    Points : 1
    Points
    1

    Par défaut Critère de Requête : Fonction Iff avec Null, <, >, =, Pas, Ou, etc.

    Bonjour,

    Quelqu'un peut-il m'expliquer ce qui suit ?

    J'ai un formulaire F_tris dans lequel il y a des champs de filtre : filtreannee (NUM), filtreformation (TXT), filtreselection (OUI/NON).

    Ce formulaire sélectionne les champs d'une table TC_tris (annee, formation et selection). L'affichage est ok.

    Mais je dois ensuite afficher la sélection dans une bête requête de sélection qui a pour source la même table (pour pouvoir copier-coller certaines colonnes).

    Et c'est là qu'est l'OS...

    Quand je teste les critères de sélection isolément, ça fonctionne. Mais si je mets le même critère dans une fonction IIf, ça affiche systématiquement zéro enregistrements.

    Ex : Dans la requête, sous le champ annee, si je mets les critères <2100, Est Null, Pas Est Null, Pas Est Null Ou Est Null, etc... ça fonctionne parfaitement, j'obtiens le résultat escompté. Mais si je mets IIf(IsNull([Formulaires]![F_tris]![filtreannee]);______;[Formulaires]![F_tris]![filtreannee]), quel que soit le ______, ça me renvoi ZERO enregistrement.
    NB : En fait ______ doit renvoyer tous les enregistrements sans aucun critère de sélection, y compris les Null.

    Subsidiairement, avec le champ formation (TXT) même problème. Par contre avec le champ selection (OUI/NON), la syntaxe bizarroïde VraiFaux(EstNull([Formulaires]![F_tris]![filtreselection]);Pas ([TC_tris].[selection])=EstNull([TC_tris]![selection]);[Formulaires]![F_tris]![filtreselection]) ... fonctionne ?!?!

    Encore subsidiairement, avec le champ annee, si dans la requête de sélection je mets le critère ______ = [TC_tris]![annee], ça devrait me renvoyer toutes les valeurs de annee de la table, et ben non, ça filtre comme si j'écrivais "Pas EstNull([TC_tris]![annee])" ....

    Outre quelques explications si quelqu'un pouvait m'envoyer la bonne syntaxe pour ______ cad "renvoyer toutes les valeurs de annee, y compris les Null".


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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 908
    Points : 1 156
    Points
    1 156
    Billets dans le blog
    1

    Par défaut

    Un peu incompris tout ceci. Peux-tu nous montrer la requête?

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : juin 2018
    Messages : 3
    Points : 1
    Points
    1

    Par défaut

    Euh ... oui si tu me dis comment faire ... c'est une simple requête de sélection sur la table TC_tris, laquelle contient le champ "annee". Dans la requete, sous le champ annee, le critère de sélection le moins pire que j'ai trouvé est "IIf(IsNull([Formulaires]![F_tris]![filtreannee]);[TC_tris]![annee];[Formulaires]![F_tris]![filtreannee])" ... mais bizarrement ça exclut tous les champs vides dans annee de TC_tris. Ca fonctionne comme Pas EstNull([TC_tris]![annee])

  4. #4
    Membre éclairé Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 615
    Points : 860
    Points
    860

    Par défaut

    Salut
    Si les champs de votre tbl sont annee, formation et selection. Alors les contrôles (zone de texte ou autres) de votre formulaire sont nommés à l'identique.
    Alors que sont dans votre formulaire les contrôles filtreannee, filtreformation et filtreselection? Des contrôles indépendants ?
    Sinon, lire ceci.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : juin 2018
    Messages : 3
    Points : 1
    Points
    1

    Par défaut

    Réponse à hyperion13 :

    Affirmatif, les champs "filtre____" sont des champs indépendants, comme tous les champs filtres.

    J'ai lu le tuto proposé. Je suis assez familier avec les filtres multiples. En réalité mon formulaire est bien plus compliqué, mais j'ai simplifié pour isoler le pb. Lequel se situe sur les arguments True et False de la fonction IIf (2ème et 3ème argument). Comme je l'écris dans ma question (1er post), les critères mis isolément fonctionnent bien mais quand je mets les mêmes critères comme 2ème ou 3ème argument de la fonction IIf(condition;true;false) (ex : (<2100) ou (Est Null Ou Est Pas Null), ça ne fonctionne pas (sélection de zéro enregistrement).

    Ma demande est donc quelle est la bonne syntaxe du second argument dans IIf(IsNull([Formulaires]![F_tris]![filtreannee]); sélectionner tout = pas de filtre ;[Formulaires]![F_tris]![filtreannee]) ... sachant que le premier et le 3ème fonctionnent.

    Sur ma BDD j'ai pourtant des filtres autrement plus compliqués, mais ils sont en VBA, alors que là je dois passer par un critère de Requête sur les champs annee, formation et selection.

    J'ai trouvé une solution un peu bâtarde qui consiste à créer deux fichiers Requête au lieu d'un et à les lancer par commande d'un bouton qui lance l'une ou l'autre selon que filtreannee est Null ou pas.

    C'est quand même incroyable qu'on ne puisse pas exprimer "pas de sélection" ou "afficher tout" comme 2ème ou 3ème argument d'une fonction IIf dans un champ NUM ou TXT ....

    Il est tout aussi surprenant (pour moi) que l'argument [TC_tris]![annee] qui devrait renvoyer TOUS les enregistrements de la table TC_tris, ne renvoie que les non Null ...

  6. #6
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2013
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 908
    Points : 1 156
    Points
    1 156
    Billets dans le blog
    1

    Par défaut

    Peux-tu poster ta base simplifiée pour qu'on puisse aussi voir de plus près?

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  7. #7
    Membre éclairé Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 615
    Points : 860
    Points
    860

    Par défaut

    JPM73
    En relisant vos post#1 et #5, je me demande si la source de votre F_Tris est la bonne.
    Post#1 : vous indiquez avoir créé le form F_Tris avec le source tbl TC_Tris. vous indiquez également avoir construit une req sur la base de la tbl TC_Tris pour filtrer les enregistrements à partir de vos 3 zones de texte indépendantes filtreannee, filtreformation et filtreselection du form F_Tris.
    Ça ne peut fonctionner, ou alors je me plante. Votre form F_Tris devrait avoir pour source la requête !!!

    Tous les champs annee, formation et selection sont-ils renseignés ? ou certains sont-ils vides ?
    Sans captures d'écran difficile de pouvoir vous aider.

    Sinon, ici, un fil de discussion qui pourrait vous aider.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP

Discussions similaires

  1. [AC-2007] Critère de requête : Comme avec comme réponse Est Null / Est Pas Null / *
    Par Crachover dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 27/04/2014, 11h14
  2. Réponses: 7
    Dernier message: 19/02/2008, 15h30
  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, 12h49
  4. [Syntaxe] Requêtes avec null
    Par Procto dans le forum MS SQL-Server
    Réponses: 2
    Dernier message: 25/07/2005, 16h10
  5. Requête à plusieurs colonnes avec la fonction COUNT
    Par zigune dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/11/2004, 10h43

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