Bonjour,
J’ai un soucis de liste déroulante. J’ai une zone de liste qui affiche des enregistrement en fonction d’une date. On sélectionne une année dans une liste et ma zone de liste affiche les enregistrements de cette année. Mais j’aimerai aussi pouvoir selectionner “toutes les années” dans ma liste déroulante pour que ma zone de liste affiche tous les enregistrements.
Comment celà est-il faisable?
Merci d’avance à ceux qui savent comment faire.
En fait, lorsque tu cliques dans ta zone liste déroulante pour selectionner une année, tu ne fais qu’exécuter une requète. Donc si tu cherches à afficher tous les enregistrements, tu dois, par exemple, ajouter au début de la zone de liste déroulante l’item ‘tous’ et modifier ta requète en conséquence; celle ci comporteta inévitablement un test.
muscorp c’est exactement ce que je veux faire, mais je ne sais pas comment ajouter un item. Je cherche depuis des heures !
Si tu peux m’aider, ça serait une aide immense
Super. Merci beaucoup. Ta requete fonctione.
en fait, lorsque je l’utilise, le code se transforme en :
SELECT [%$##@_Alias].f_dateD
FROM [Select f_dateD,1 As Position From Fiche Union
Select TOP 1 "-Tous-",0 From Fiche]. AS [%$##@_Alias]
ORDER BY [%$##@_Alias].Position;
Le résultat est :
Tous -
15/10/2006
07/11/2006
05/11/2006
03/01/2007
01/09/2005
J’ai voulu retrouvé ma liste avec uniquement les année alors j’ai modifié la requete mais mal modifié puisque ça ne fonctionne pas !
SELECT [COLOR=red]year(f_dateD)[/COLOR]
FROM [Select f_dateD,1 As Position From Fiche Union
Select TOP 1 "-Tous-",0 From Fiche]. AS [%$##@_Alias]
ORDER BY [%$##@_Alias].Position;
Le résultat est: #Erreur
2006
2006
2007
2005
J’ai aussi essayé de regrouper les années pour que 2006 ne figure qu’une seule fois, mais alors là plus rien ne fonctionne. Je suis désolé d’être aussi nul, mais j’ai l’impression qu’avec tes connaissaces tu va pouvoir encore m’aider.
Grand merci.
SELECT [Fiche].f_dateD
FROM [Select f_dateD,1 As Position From Fiche Union
Select TOP 1 "-Tous-",0 From Fiche]. AS [Fiche]
ORDER BY [Fiche].Position,[Fiche].f_dateD;
et ça ça ne marche pas:
SELECT [Fiche].f_dateD
FROM [Select year(f_dateD),1 As Position From Fiche Union
Select TOP 1 "-Tous-",0 From Fiche]. AS [Fiche]
ORDER BY [Fiche].Position,[Fiche].f_dateD;
ni ça:
SELECT Year(f_dateD) AS Expr1
FROM [Select f_dateD,1 As Position From Fiche Union
Select TOP 1 "-Tous-",0 From Fiche]. AS Fiche
ORDER BY Fiche.Position, Fiche.f_dateD;
Le dernier code met effectivement que les années,mais déjàplusieurs fois 2006 et "Erreur" au lieu de "- Tous -"
ReSalut,
Il m’a fallu du temps… jusqu’à maintenant, mais j’ai trouvé une solution quime permet d’avoir les années non redondantes dans ma liste de sélection et avec "- Toutes - en début de liste.
Voilà comment j’ai fait, mais si ce n’est pas la meilleure des solution je suis tout à fait prenneur de remarques:
' Première requete
SELECT Year([f_dateD]) AS An
FROM Fiche
GROUP BY Year([f_dateD]);
' 2ème requete
SELECT Annees.An
FROM [Select An,1 As Position From Annees Union
SELECT "- Tous -",0 FROM Annees]. AS An
ORDER BY [An].Position, [An].An;
Muscorp, dans ton code tu avais mis:
Select TOP 1 “-Tous-”,0 From Fiche
J’ai supprimé ce qui est en rouge. Est-ce nécéssaire ou conseillé de le mettre?
Maintenant j’ai une autre question qui se pose. J’utilise plusieurs zones de listes déroulantes qui, en fonction de ce qui est sélectionné, doiventmettre à jour une zone de liste qui affiche les résultat de ma requête. Or, puisque j’ai un item - Tous - en haut de mes listes, je dois tester le choix de chaque liste. J’ai 5 listes de choix. Dois-je effectuer une requête différente pour chaque combinaison possible de sélection dans ces listes? J’espère qu’il y a une autre solution !
Sans la possibilté de choisir - Tous - une seule requête était suffisante, mais comment traiter ce nouveau dernier choix dans chaque liste ?
En espérant que quelqu’un va pourvoir m’aider, je vous remercie tous d’avance de donner de votre temps pour ce qui gallèrent à trouver des solutions.
Bon, je viens de faire le point et il faut impérativement que je trouve le moyen (que je cherche déséspérément) de réaliser mes requêtes sans devoir en faire une trentaine pour chaque cas.
Punaise, jai trouvé. Il est tard et jai passé beaucoup de temps, mais jai solutionné mon problème. Tout ça avec une seule requête, la fameuse « * » et des « If ».
Pouahhhh
soulagement et super content !
Si quelquun veux ma solution, il suffit de me demander et je mets ça sur le forum.
Là je suis fatigué et demain je me lève tôt
bonne nuit et bonne journée à ceux pour qui il fait jour.
Encore GRAND merci à muscorp sans qui je naurais sans doute jamais trouvé. :love: