j'ai un probleme avec une requete qui affiche les semaine et les tri mais le trie n'est pas fiable car les semaines de 1à 9 sont considérés comme les semaines de 10 à 90 :
S9
S8
S7
S6
S5
S18
S17
S16
S15
S14
S13
S12
S11
S10
Ceci est normal avec un trie éxécuté sur du texte. Actuellement on doit avoir :
SELECT tbl_S.SActuel
FROM tbl_S
ORDER BY tbl_S.SActuel;
On enlève l'ordre de trie sur ce champ. Puis on va "supprimer" ce S avec une fonction de manipulation de texte-->Mid-->ou selon le lieu d'exploitation :ExtracChaîne
SELECT tbl_S.SActuel, Mid([SActuel],2) AS ExempleMid
FROM tbl_S
ORDER BY Mid([SActuel],2);
Malgré un ordre de trie sur ce nouveau champ, le résultat espéré n'est pas au rendez-vous. Normal.Il nous faut le convertir numérique à l'aide d'une fonctions de conversion-->Val ou toujours selon le lieu d'exploitation--> CNum
SELECT tbl_S.SActuel, Val(Mid([SActuel],2)) AS [ExempleMid]
FROM tbl_S
ORDER BY Val(Mid([SActuel],2));
Récapitulatif pour Mid : Mid(Expression;Début;Longueur)
Expression = La chaîne de caractères
Début= Position de départ
Longueur= Nombre de caractères à extraire(En cas d'ommission de ce dernier paramètre, la fin de chaîne est envoyée.
Cordialement.
__________________________
Le peu que je sais, c'est à mon ignorance que je le dois. Sacha Guitry
merci pour votre aide ,je suis pas un grand informatitien
voila le code entré, je veux bien que vous m'aider à le modifier
SELECT ("S" & Format([TOUR_date],"ww")) AS semaine
FROM TOURNEE
WHERE (((TOURNEE.TOUR_date) Between Now()-27 And Now()))
GROUP BY ("S" & Format([TOUR_date],"ww"))
ORDER BY ("S" & Format([TOUR_date],"ww")) DESC;
Ici nous avons un trie sur un champ texte : SELECT ("S" & Format([TOUR_date],"ww")) AS semaine
FROM TOURNEE
WHERE (((TOURNEE.TOUR_date) Between Now()-27 And Now()))
GROUP BY ("S" & Format([TOUR_date],"ww"))
ORDER BY ("S" & Format([TOUR_date],"ww")) DESC;
Nous allons ajouter un champ qu'on rendra invisible, si besoin. Ce dernier ne doit pas avoir "S" comme préfixe :
SELECT ("S" & Format([TOUR_date],"ww")) AS semaine,
Format([TOUR_date],"ww") AS semaineTrie
FROM TOURNEE
WHERE (((TOURNEE.TOUR_date) Between Now()-27 And Now()))
GROUP BY ("S" & Format([TOUR_date],"ww")), Format([TOUR_date],"ww")
ORDER BY Format([TOUR_date],"ww");
Ainsi, l'ordre de trie ne correspond pas à nos attentes. Il faut, en sus indiquer qu'il nous faut du numérique--> Val=CNum : SELECT ("S" & Format([TOUR_date],"ww")) AS semaine,
Val(Format([TOUR_date],"ww")) AS semaineTrie
FROM TOURNEE
WHERE (((TOURNEE.TOUR_date) Between Now()-27 And Now()))
GROUP BY ("S" & Format([TOUR_date],"ww")),
Val(Format([TOUR_date],"ww"))
ORDER BY Val(Format([TOUR_date],"ww"));
Cordialement.
__________________________
Le peu que je sais, c'est à mon ignorance que je le dois. Sacha Guitry