OVH Cloud OVH Cloud

Tri spécial d'un recordset

7 réponses
Avatar
Laurent Merlet
Bonjour,

Je souhaiterai réaliser un tri un peu spécial sur un recordset que j'ouvre
de cette manière (Ce recordset va me permettre par la suite d'alimenter un
Form) :

StrSQL = ("SELECT * FROM Tbl ORDER BY Champ1")

On est d'accord qu'avec cette chaîne SQL il va me trier mon recordset par
ordre alphabéthique du champ1
Le problème est que ce tri alphabétique ne me convient pas tout à fait...je
m'explique
Exemple : Le champ1 est un champ Heure. Si je fais un tri classique, il va
me trier de 00:00 à 23:59. Ce que je voudrais c'est qu'il me tri de 06:00 à
23:59, puis de 23:59 à 05:59.......est-ce possible ?
De même, le champ2 est un champ Texte qui peut prendre 3 valeurs différentes
: "Autres", "IDF", "Banlieue". Avec un tri classique je vais avoir :
Autres - Banlieue - IDF. Comment faire pour avoir Autres - IDF - Banlieue ?
Jusqu'à maintenant je procédais avec une table tampon indexée, laquelle je
remplissais avec des requêtes ajout, afin de faire mon tri
spécifique....mais cela ne me convient plus vraiment pour d'autres raisons

Si quelqu'un a une idée.....merciiiiiiiiiiiii

--
Laurent Merlet
Cellule informatique
La Poste - Roissy CTCI
Tel : 01.48.62.30.89

7 réponses

Avatar
Crevecoeur Jérôme
Bonjour:


Pour le champ1 , le mieux serait d'avoir un champ dateaction qui contient
la date et de trier sur deux champs.
"order by dateaction,champ"

Pour le champ2.
Créer une table Lieu, avec un champ Ordre.
Puis lier les deux tables dans votre requete et trier sur Ordre.

Il y a d'autres solutions, mais celles-ci me paraissent les plus simples

Cordialement


--
----------------------------------------------------------------------------
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
----------------------------------------------------------------------------
---------------------
"Laurent Merlet" a écrit dans le message de
news:bgtfeg$4rl$
Bonjour,

Je souhaiterai réaliser un tri un peu spécial sur un recordset que j'ouvre
de cette manière (Ce recordset va me permettre par la suite d'alimenter un
Form) :

StrSQL = ("SELECT * FROM Tbl ORDER BY Champ1")

On est d'accord qu'avec cette chaîne SQL il va me trier mon recordset par
ordre alphabéthique du champ1
Le problème est que ce tri alphabétique ne me convient pas tout à
fait...je

m'explique
Exemple : Le champ1 est un champ Heure. Si je fais un tri classique, il va
me trier de 00:00 à 23:59. Ce que je voudrais c'est qu'il me tri de 06:00
à

23:59, puis de 23:59 à 05:59.......est-ce possible ?
De même, le champ2 est un champ Texte qui peut prendre 3 valeurs
différentes

: "Autres", "IDF", "Banlieue". Avec un tri classique je vais avoir :
Autres - Banlieue - IDF. Comment faire pour avoir Autres - IDF - Banlieue
?

Jusqu'à maintenant je procédais avec une table tampon indexée, laquelle je
remplissais avec des requêtes ajout, afin de faire mon tri
spécifique....mais cela ne me convient plus vraiment pour d'autres raisons

Si quelqu'un a une idée.....merciiiiiiiiiiiii

--
Laurent Merlet
Cellule informatique
La Poste - Roissy CTCI
Tel : 01.48.62.30.89




Avatar
Philippe PONS
Salut,

Tu peux créer un champ calculé numérique, et trier sur ce champ

StrSQL = ("SELECT * , IIF(Champ2='Autre', 1, IIF(Champ2='IDF', 2, 3)) As
CléDeTi FROM Tbl ORDER BY CléDeTrie")

Cordialement,
Philippe.

"Laurent Merlet" a écrit dans le message de news:
bgtfeg$4rl$
Bonjour,

Je souhaiterai réaliser un tri un peu spécial sur un recordset que j'ouvre
de cette manière (Ce recordset va me permettre par la suite d'alimenter un
Form) :

StrSQL = ("SELECT * FROM Tbl ORDER BY Champ1")

On est d'accord qu'avec cette chaîne SQL il va me trier mon recordset par
ordre alphabéthique du champ1
Le problème est que ce tri alphabétique ne me convient pas tout à
fait...je

m'explique
Exemple : Le champ1 est un champ Heure. Si je fais un tri classique, il va
me trier de 00:00 à 23:59. Ce que je voudrais c'est qu'il me tri de 06:00
à

23:59, puis de 23:59 à 05:59.......est-ce possible ?
De même, le champ2 est un champ Texte qui peut prendre 3 valeurs
différentes

: "Autres", "IDF", "Banlieue". Avec un tri classique je vais avoir :
Autres - Banlieue - IDF. Comment faire pour avoir Autres - IDF - Banlieue
?

Jusqu'à maintenant je procédais avec une table tampon indexée, laquelle je
remplissais avec des requêtes ajout, afin de faire mon tri
spécifique....mais cela ne me convient plus vraiment pour d'autres raisons

Si quelqu'un a une idée.....merciiiiiiiiiiiii

--
Laurent Merlet
Cellule informatique
La Poste - Roissy CTCI
Tel : 01.48.62.30.89




Avatar
Laurent Merlet
Solution intéressante....merci beaucoup
Par contre pour le tri spécifique des heures ?
Merci

"Philippe PONS" a écrit dans le message news:
3f326d33$0$27047$

Salut,

Tu peux créer un champ calculé numérique, et trier sur ce champ

StrSQL = ("SELECT * , IIF(Champ2='Autre', 1, IIF(Champ2='IDF', 2, 3)) As
CléDeTi FROM Tbl ORDER BY CléDeTrie")

Cordialement,
Philippe.

"Laurent Merlet" a écrit dans le message de news:
bgtfeg$4rl$
Bonjour,

Je souhaiterai réaliser un tri un peu spécial sur un recordset que
j'ouvre


de cette manière (Ce recordset va me permettre par la suite d'alimenter
un


Form) :

StrSQL = ("SELECT * FROM Tbl ORDER BY Champ1")

On est d'accord qu'avec cette chaîne SQL il va me trier mon recordset
par


ordre alphabéthique du champ1
Le problème est que ce tri alphabétique ne me convient pas tout à
fait...je

m'explique
Exemple : Le champ1 est un champ Heure. Si je fais un tri classique, il
va


me trier de 00:00 à 23:59. Ce que je voudrais c'est qu'il me tri de
06:00


à
23:59, puis de 23:59 à 05:59.......est-ce possible ?
De même, le champ2 est un champ Texte qui peut prendre 3 valeurs
différentes

: "Autres", "IDF", "Banlieue". Avec un tri classique je vais avoir :
Autres - Banlieue - IDF. Comment faire pour avoir Autres - IDF -
Banlieue


?
Jusqu'à maintenant je procédais avec une table tampon indexée, laquelle
je


remplissais avec des requêtes ajout, afin de faire mon tri
spécifique....mais cela ne me convient plus vraiment pour d'autres
raisons



Si quelqu'un a une idée.....merciiiiiiiiiiiii

--
Laurent Merlet
Cellule informatique
La Poste - Roissy CTCI
Tel : 01.48.62.30.89








Avatar
Laurent Merlet
Merci pour la réponse.....mais qu'appelez vous un champ dateaction ?
Merciii

"Crevecoeur Jérôme" a écrit dans le message
news:
Bonjour:


Pour le champ1 , le mieux serait d'avoir un champ dateaction qui contient
la date et de trier sur deux champs.
"order by dateaction,champ"

Pour le champ2.
Créer une table Lieu, avec un champ Ordre.
Puis lier les deux tables dans votre requete et trier sur Ordre.

Il y a d'autres solutions, mais celles-ci me paraissent les plus simples

Cordialement


--
--------------------------------------------------------------------------
--

--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--

---------------------
"Laurent Merlet" a écrit dans le message de
news:bgtfeg$4rl$
Bonjour,

Je souhaiterai réaliser un tri un peu spécial sur un recordset que
j'ouvre


de cette manière (Ce recordset va me permettre par la suite d'alimenter
un


Form) :

StrSQL = ("SELECT * FROM Tbl ORDER BY Champ1")

On est d'accord qu'avec cette chaîne SQL il va me trier mon recordset
par


ordre alphabéthique du champ1
Le problème est que ce tri alphabétique ne me convient pas tout à
fait...je

m'explique
Exemple : Le champ1 est un champ Heure. Si je fais un tri classique, il
va


me trier de 00:00 à 23:59. Ce que je voudrais c'est qu'il me tri de
06:00


à
23:59, puis de 23:59 à 05:59.......est-ce possible ?
De même, le champ2 est un champ Texte qui peut prendre 3 valeurs
différentes

: "Autres", "IDF", "Banlieue". Avec un tri classique je vais avoir :
Autres - Banlieue - IDF. Comment faire pour avoir Autres - IDF -
Banlieue


?
Jusqu'à maintenant je procédais avec une table tampon indexée, laquelle
je


remplissais avec des requêtes ajout, afin de faire mon tri
spécifique....mais cela ne me convient plus vraiment pour d'autres
raisons



Si quelqu'un a une idée.....merciiiiiiiiiiiii

--
Laurent Merlet
Cellule informatique
La Poste - Roissy CTCI
Tel : 01.48.62.30.89








Avatar
Crevecoeur Jérôme
c'est à dire quant on mémorise une heure,si vous avez un champ de la date du
jour votre probléme serait réglé.



--
----------------------------------------------------------------------------
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
----------------------------------------------------------------------------
---------------------
"Laurent Merlet" a écrit dans le message de
news:bgts9k$can$
Merci pour la réponse.....mais qu'appelez vous un champ dateaction ?
Merciii

"Crevecoeur Jérôme" a écrit dans le message
news:
Bonjour:


Pour le champ1 , le mieux serait d'avoir un champ dateaction qui
contient


la date et de trier sur deux champs.
"order by dateaction,champ"

Pour le champ2.
Créer une table Lieu, avec un champ Ordre.
Puis lier les deux tables dans votre requete et trier sur Ordre.

Il y a d'autres solutions, mais celles-ci me paraissent les plus simples

Cordialement


--


--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48


--------------------------------------------------------------------------
--
---------------------
"Laurent Merlet" a écrit dans le message de
news:bgtfeg$4rl$
Bonjour,

Je souhaiterai réaliser un tri un peu spécial sur un recordset que
j'ouvre


de cette manière (Ce recordset va me permettre par la suite
d'alimenter



un
Form) :

StrSQL = ("SELECT * FROM Tbl ORDER BY Champ1")

On est d'accord qu'avec cette chaîne SQL il va me trier mon recordset
par


ordre alphabéthique du champ1
Le problème est que ce tri alphabétique ne me convient pas tout à
fait...je

m'explique
Exemple : Le champ1 est un champ Heure. Si je fais un tri classique,
il



va
me trier de 00:00 à 23:59. Ce que je voudrais c'est qu'il me tri de
06:00


à
23:59, puis de 23:59 à 05:59.......est-ce possible ?
De même, le champ2 est un champ Texte qui peut prendre 3 valeurs
différentes

: "Autres", "IDF", "Banlieue". Avec un tri classique je vais avoir :
Autres - Banlieue - IDF. Comment faire pour avoir Autres - IDF -
Banlieue


?
Jusqu'à maintenant je procédais avec une table tampon indexée,
laquelle



je
remplissais avec des requêtes ajout, afin de faire mon tri
spécifique....mais cela ne me convient plus vraiment pour d'autres
raisons



Si quelqu'un a une idée.....merciiiiiiiiiiiii

--
Laurent Merlet
Cellule informatique
La Poste - Roissy CTCI
Tel : 01.48.62.30.89












Avatar
Philippe PONS
Ca doit être possible, mais je ne voit pas bien ce que tu veux faire...
Philippe.
"Laurent Merlet" a écrit dans le message de
news: bgts8p$i0r$
Solution intéressante....merci beaucoup
Par contre pour le tri spécifique des heures ?
Merci

"Philippe PONS" a écrit dans le message news:
3f326d33$0$27047$

Salut,

Tu peux créer un champ calculé numérique, et trier sur ce champ

StrSQL = ("SELECT * , IIF(Champ2='Autre', 1, IIF(Champ2='IDF', 2, 3)) As
CléDeTi FROM Tbl ORDER BY CléDeTrie")

Cordialement,
Philippe.

"Laurent Merlet" a écrit dans le message de
news:


bgtfeg$4rl$
Bonjour,

Je souhaiterai réaliser un tri un peu spécial sur un recordset que
j'ouvre


de cette manière (Ce recordset va me permettre par la suite
d'alimenter



un
Form) :

StrSQL = ("SELECT * FROM Tbl ORDER BY Champ1")

On est d'accord qu'avec cette chaîne SQL il va me trier mon recordset
par


ordre alphabéthique du champ1
Le problème est que ce tri alphabétique ne me convient pas tout à
fait...je

m'explique
Exemple : Le champ1 est un champ Heure. Si je fais un tri classique,
il



va
me trier de 00:00 à 23:59. Ce que je voudrais c'est qu'il me tri de
06:00


à
23:59, puis de 23:59 à 05:59.......est-ce possible ?
De même, le champ2 est un champ Texte qui peut prendre 3 valeurs
différentes

: "Autres", "IDF", "Banlieue". Avec un tri classique je vais avoir :
Autres - Banlieue - IDF. Comment faire pour avoir Autres - IDF -
Banlieue


?
Jusqu'à maintenant je procédais avec une table tampon indexée,
laquelle



je
remplissais avec des requêtes ajout, afin de faire mon tri
spécifique....mais cela ne me convient plus vraiment pour d'autres
raisons



Si quelqu'un a une idée.....merciiiiiiiiiiiii

--
Laurent Merlet
Cellule informatique
La Poste - Roissy CTCI
Tel : 01.48.62.30.89












Avatar
Crevecoeur Jérôme
Bonjour,

Trier le jour n'est pas biscornu du tout...
C'est même une des solutions les plus simples.



--
----------------------------------------------------------------------------
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
----------------------------------------------------------------------------
---------------------
"Laurent Merlet" a écrit dans le message de
news:bgufhl$m90$
Hmmm...ok. En fait tu réponds à ma question telle que je l'ai
effectivement

posée....cela résoud le problème, on est d'accord. D'ailleurs c'est une
solution que j'avais envisagée, dans la mesure où j'ai un champ date et
donc

mon champ heure. Mais en réalité, mais question était plutôt de savoir
s'il

existait en SQL une manière de trier "perso". Comme il y a le ORDER BY ...
ASC et DESC, j'imaginais qu'il puisse y avoir autre chose.....mais pas
grave

! Donc il faut un peu bidouiller.....c'est pas que je suis contre, je le
fais même régulièrement, mais quand je fais ça, je me dis qu'il existe une
solution moins biscornue, plus "propre" disons....voila voila
Merci quand même !!

"Crevecoeur Jérôme" a écrit dans le message
news:
c'est à dire quant on mémorise une heure,si vous avez un champ de la
date


du
jour votre probléme serait réglé.



--


--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48


--------------------------------------------------------------------------
--
---------------------
"Laurent Merlet" a écrit dans le message de
news:bgts9k$can$
Merci pour la réponse.....mais qu'appelez vous un champ dateaction ?
Merciii

"Crevecoeur Jérôme" a écrit dans le
message



news:
Bonjour:


Pour le champ1 , le mieux serait d'avoir un champ dateaction qui
contient


la date et de trier sur deux champs.
"order by dateaction,champ"

Pour le champ2.
Créer une table Lieu, avec un champ Ordre.
Puis lier les deux tables dans votre requete et trier sur Ordre.

Il y a d'autres solutions, mais celles-ci me paraissent les plus
simples




Cordialement


--






--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48






--------------------------------------------------------------------------
--
---------------------
"Laurent Merlet" a écrit dans le message de
news:bgtfeg$4rl$
Bonjour,

Je souhaiterai réaliser un tri un peu spécial sur un recordset que
j'ouvre


de cette manière (Ce recordset va me permettre par la suite
d'alimenter



un
Form) :

StrSQL = ("SELECT * FROM Tbl ORDER BY Champ1")

On est d'accord qu'avec cette chaîne SQL il va me trier mon
recordset




par
ordre alphabéthique du champ1
Le problème est que ce tri alphabétique ne me convient pas tout à
fait...je

m'explique
Exemple : Le champ1 est un champ Heure. Si je fais un tri
classique,





il
va
me trier de 00:00 à 23:59. Ce que je voudrais c'est qu'il me tri
de





06:00
à
23:59, puis de 23:59 à 05:59.......est-ce possible ?
De même, le champ2 est un champ Texte qui peut prendre 3 valeurs
différentes

: "Autres", "IDF", "Banlieue". Avec un tri classique je vais avoir
:





Autres - Banlieue - IDF. Comment faire pour avoir Autres - IDF -
Banlieue


?
Jusqu'à maintenant je procédais avec une table tampon indexée,
laquelle



je
remplissais avec des requêtes ajout, afin de faire mon tri
spécifique....mais cela ne me convient plus vraiment pour d'autres
raisons



Si quelqu'un a une idée.....merciiiiiiiiiiiii

--
Laurent Merlet
Cellule informatique
La Poste - Roissy CTCI
Tel : 01.48.62.30.89