|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : août 2008 Messages : 25 ![]() |
Bonjour,
Je bute sur un problème de selection basé sur une valeur retournée depuis un formulaire par une combobox. Cette combobox est batie à partir d'une liste déroulante contenant 4 valeurs texte sans valeur par défaut. Si aucun choix n'est sélectionné, elle renvoie donc une valeur nulle. J'intègre cette cbo dans la zone de critère d'une requète sélection et je voudrais avoir tous les enregistrements de la table quand aucun choix n'a été fait. Sans intégrer la cbo, on peut l'obtenir par "comme "*"" J'ai regardé dans l'excellent tutoriel de Jeannot45 mais pas trouvé la réponse! Voila en SQL la requete: Code sql :
Si vous avez des idées, elles seront les bienvenues Pierre dit Pedro |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 089 ![]() |
Bonjour,
As-tu lu le tuto sur l'opérateur LIKE ? Code :
(((T100_fusion.niveaufusion)=IIf(IsNull([Formulaires]![F110_ListeFusion]![cboniveau LIKE "* ",[Formulaires]![F110_ListeFusion]![cboniveau]))); Si F110 est null alors Code :
(T100_fusion.niveaufusion)=(T100_fusion.niveaufusion) LIKE "* " Concernant ton opérateur Like : Code :
...(T100_fusion.niveaufusion) LIKE "* ",[... Est-ce ce que tu souhaites faire ? Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 25 ![]() |
Effectivement tes remarques sont très pertinentes:
Pour la première, si la cbo renvoit un "null", il ne faut garder que un like "*" ou peut etre seulement un "*" ou *. J'ai parcouru le tuto concernant LIKE mais pas encore tout digéré! Pour la seconde, tout à fait exact il faut peut etre "*" mais surement pas "* "! En conclusion, il faut recopier le texte des commandes dans word ou autre pour distinguer clairement s'il n'y a pas un espace en trop qui traine. Moyennant quoi, ces deux remarques corrigées, cela ne marche toujours pas. J'ai aussi essayé de ne plus avoir de null dans la table (une valeur par defaut du genre "non défini"), d'ajouter une valeur possible dans la cbo qui serait "tous" et qui renverrai un caractère générique du genre *: echec aussi! Si tu as encore du temps à me consacrer, j'avancerai sans doute plus vite, sinon il me faut un peu de temps pour étudier la doc que tu me recommandes de lire. Je découvre d'ailleurs que la documentation fournie est une vraie mine de renseignements. Merci beaucoup pour ces remarques. Pedro |
|
|
00
|
|
|
#4 | ||
|
Invité régulier
![]() Inscription : août 2008 Messages : 25 ![]() |
Avec du temps et beaucoup de tatonnements, voila une solution qui fonctionne, peut etre pas très académique!
Code :
A+ Pedro |
||
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 089 ![]() |
Bonjour,
En effet comparer le champ à sa propre valeur est une astuce valide mais qui a le désavantage de nécessiter l'interprétation d'une condition peut-être inutile. Sur de grosses tables cela peut être pénalisant. Dans le code fourni ci-dessous, si la combo est "Tous" on renvoi True, simplement. Dans le cas contraire on applique la condition Combo=Champ. Code :
WHERE iif([Forms]![F110_ListeFusion]![cboniveau]="---Tous---",true,[T100_fusion].[niveaufusion])=[Forms]![F110_ListeFusion]![cboniveau]);
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 25 ![]() |
Effectivement c'est plus court, logique et cela me convient tout à fait!
Mille merci pour l'aide A+ Pierre |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com