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 :

Filtre avec valeur nulle


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Octobre 2021
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Apprenti Ingénieur

    Informations forums :
    Inscription : Octobre 2021
    Messages : 36
    Points : 26
    Points
    26
    Par défaut Filtre avec valeur nulle
    Bonjour à tous,

    je vous écrit car j'ai un petit soucis avec mes filtres sur mon formulaire Access.
    Je souhaite filtrer par certains champs de mon formulaire, cependant, certains de ces champs peuvent être vide.

    Par exemple, si je filtre sur le Site et Projet dans ma requête SQL en ajoutant à la fin :
    WHERE (((T_Projet.Site) Like IIf(IsNull([Formulaires]![F_SuiviProjet]![FiltreSite]),"*","*" & [Formulaires]![F_SuiviProjet]![FiltreSite] & "*")) AND ((T_Projet.NomProjet Like IIf(IsNull([Formulaires]![F_SuiviProjet]![FiltreNomProjet]),"*","*" & [Formulaires]![F_SuiviProjet]![FiltreNomProjet] & "*")))

    avec Site la colonne que je filtre et FiltreSite le champ me permettant de sélectionner le site pour filtrer la sélection.
    La requête me ressortira donc toutes les données de ma table projet mais uniquement celles ou les champs Site et Projet sont remplis.
    Je perds donc un certain nombre de lignes..

    Je pense que je dois modifier le WHERE de ma requête mais après plusieurs tentatives, impossible de trouver..

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Ajoute la fonction NZ(). essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WHERE (
    ((nz(T_Projet.Site)) Like IIf(IsNull([Formulaires]![F_SuiviProjet]![FiltreSite]),"*","*" & [Formulaires]![F_SuiviProjet]![FiltreSite] & "*")) 
    AND ((nz(T_Projet.NomProjet) Like IIf(IsNull([Formulaires]![F_SuiviProjet]![FiltreNomProjet]),"*","*" & [Formulaires]![F_SuiviProjet]![FiltreNomProjet] & "*")))
    explication : On ne peut comparer 2 valeurs dont une au moins est nulle.
    "Always look at the bright side of life." Monty Python.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Octobre 2021
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Apprenti Ingénieur

    Informations forums :
    Inscription : Octobre 2021
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par micniv Voir le message
    Ajoute la fonction NZ(). essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WHERE (
    ((nz(T_Projet.Site)) Like IIf(IsNull([Formulaires]![F_SuiviProjet]![FiltreSite]),"*","*" & [Formulaires]![F_SuiviProjet]![FiltreSite] & "*")) 
    AND ((nz(T_Projet.NomProjet) Like IIf(IsNull([Formulaires]![F_SuiviProjet]![FiltreNomProjet]),"*","*" & [Formulaires]![F_SuiviProjet]![FiltreNomProjet] & "*")))
    explication : On ne peut comparer 2 valeurs dont une au moins est nulle.
    Bonjour,

    Merci pour ta réponse rapide.
    J'ai l'impression que ça fonctionne mais pas du premier coup. Quand j'ouvre mon formulaire on me demande d'entrer toutes mes valeurs de paramètres de FiltreSite, FiltreNomProjet etc..

    Donc dans un premier temps cela ne fonctionne pas et mes sous formulaires sont vides, mais lorsque je vais dans une page visual basic et que je ressors la requête fonctionne bien et les filtres aussi.. Je ne comprends pas trop la
    Et si j'affiche uniquement la requête en mode feuille de données, j'ai toutes mes données qui apparaissent. C'est un peu perturbant..

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    En fait tu t'embête un peu pour rien :-)
    chercher like "*" c'est la même chose que chercher like "**"Et lors d'une concaténation Access traite le null comme la chaîne vide "".
    Donc on peut simplifier le critère en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ((nz(T_Projet.Site)) Like "*" & [Formulaires]![F_SuiviProjet]![FiltreSite] & "*")
    AND (nz(T_Projet.NomProjet) Like "*" & [Formulaires]![F_SuiviProjet]![FiltreNomProjet] & "*")
    Ceci n'explique pas ton autre probème.

    Ce que tu peux faire pour investiguer c'est ouvrir ton formulaire F_SuiviProjet de suivi de projet et si le SQL que tu as mis vient d'une requête enregistrée dans la BD (pas du SQL planqué dans un formulaire :-)) tu vas pouvoir exécuter ta requête et voir tes résultats. Ça te donnera peut-être une piste.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [PostGreSLQ] pb d'UPDATE avec valeur NULL
    Par mellie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/03/2006, 10h03
  2. Calcul de stock avec valeure null
    Par nideux dans le forum Access
    Réponses: 3
    Dernier message: 02/12/2005, 11h10
  3. locate avec valeurs nulles
    Par lol_adele dans le forum Bases de données
    Réponses: 13
    Dernier message: 17/10/2005, 13h31
  4. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    Réponses: 3
    Dernier message: 13/09/2004, 14h40
  5. Pb requete avec valeurs nulles
    Par James85 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 12/04/2004, 10h20

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