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 :

Requête avec fonction "Comme " plus "Ou"


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 382
    Points : 136
    Points
    136
    Par défaut Requête avec fonction "Comme " plus "Ou"
    Bonjour,

    Voici mon problème, j'utilise dans mes requêtes, la commande "Comme" pour aller chercher des critères dans un formulaire. jusque là, aucun problème.

    Configuration :
    * 1 table avec deux champs
    - champ 1 : province (NR, BX, LX etc...)
    - champ 2 : nom de la personne

    * 1 formulaire (Encodage 2015) avec une liste déroulante
    - champ 1 (province): province (*, NR, BX, LX etc...)

    * 1 requête avec les deux champs de la table
    - champ 1 : province
    - champ 2 : nom de la personne

    Dans les critères du champ 1 de la requête, j'ai la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*"+[Forms]![Encodage 2015]![province]+"*"
    Donc, lorsque je choisi dans la liste déroulante du formulaire, par exemple "NR" et qu'ensuite je lance la requête, celle-ci ne m'affiche que les noms de NR. Si je choisi "*", alors j'ai toutes les provinces.

    Maintenant
    J'aimerais pouvoir choisir plusieurs provinces dans la liste,

    Donc avoir :
    * 1 formulaire avec une liste déroulante
    - champ 1 : province - mais pouvoir mentionner : "NR" Ou "LX" (par exemple)

    Mais cela ne fonctionne pas, la commande "Comme" ne comprend pas la valeur : "NR" Ou "LX"

    Pour le moment pour que cela fonctionne, je devrais avoir plusieurs champs (provinces) et dans la requête, avoir plusieurs commande "Comme" dans les critères Ou/

    Merci d'avance pour votre aide

    Bien à vous

  2. #2
    Modérateur

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

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

    La syntaxe est quelque chose comme :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*"+[Forms]![Encodage 2015]![province1]+"*" ou Comme "*"+[Forms]![Encodage 2015]![province2]+"*"

    Note qu'avec cette syntaxe, si province2 est vide tu récupère tout même si province1 est renseigné.

    Donc, il faut ruser et passer par un champ calculé : Critere2 : iif(not isnull([Forms]![Encodage 2015]![province2]); ([TonChamp] like "*" & [Forms]![Encodage 2015]![province2] & "*"); false) et un test sur Critere2 à True.

    La solution la plus simple est faire du SQL dynamique, c-à-d faire créer ta chaine SQL par du code VBA.

    Il y a un bon tutoriel sur un formulaire de recherche à critère multiple sur ce site.

    En passant, je recommande de ne pas utiliser + mais & comme opérateur de concaténation, cela évite les mauvaises surprises avec les nombre car si tes 2 champs sont numériques alors [Champ1] + [Champ2] pourrait additionner les 2 champs et non pas les concaténer ce qui que 1 + 2 donnerai 3 et non 12 comme attendu. Cela évite aussi la confusion au le programmeur.

    A+

Discussions similaires

  1. [AC-2007] lenteur tableau croisé d'une requête avec fonction vba que faire ?
    Par rogerfon dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/07/2012, 21h42
  2. Requête avec fonction MAX
    Par theo99 dans le forum SQL
    Réponses: 2
    Dernier message: 16/12/2010, 15h38
  3. requête avec fonction logarithmique
    Par nefertari dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/07/2007, 14h39
  4. Requête avec fonction Sum
    Par freud dans le forum Bases de données
    Réponses: 3
    Dernier message: 12/02/2007, 13h32
  5. requête avec fonction week()
    Par Sebastien_INR59 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 27/06/2006, 18h05

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