OVH Cloud OVH Cloud

tri avec champ null

4 réponses
Avatar
sev
Bonjour

Petit problème de tri
J'ai un champ numérique correspondant à une année. Pour certaines études de ma base, l'année est null
Je voudrais trier mes enregistrements du plus récent au plus ancien. Pour moi, quand l'année n'est pas renseignée (null), cela veut dire que mon étude est encore en cours donc c'est la plus récente
Le problème est qu'un tri décroissant sur la colonne année, met les études ayant un champ null à la fin
Comment faire, si ce n'est utiliser une valeur qui n'a aucun sens et qui sera toujours plus grande (pour apparaitre en premier
Merc

4 réponses

Avatar
Eric
=?Utf-8?B?c2V2?= écrivait

Bonjour,

Petit problème de tri.
J'ai un champ numérique correspondant à une année. Pour certaines
études de ma base, l'année est null. Je voudrais trier mes
enregistrements du plus récent au plus ancien. Pour moi, quand
l'année n'est pas renseignée (null), cela veut dire que mon étude
est encore en cours donc c'est la plus récente. Le problème est
qu'un tri décroissant sur la colonne année, met les études ayant un
champ null à la fin. Comment faire, si ce n'est utiliser une valeur
qui n'a aucun sens et qui sera toujours plus grande (pour apparaitre
en premier) Merci




Bonjour

Plutot qu'une valeur pourquoi ne pas faire apparaître "En cours" ?
Dans la requête tu crées un Champ avec pour définition:
Expr1:VraiFaux(EstNull([TaDate]);"En Cours";[TaDate]) et Tri Décroissant

A+
Eric

Avatar
Eric
Eric écrivait

Plutot qu'une valeur pourquoi ne pas faire apparaître "En cours" ?
Dans la requête tu crées un Champ avec pour définition:
Expr1:VraiFaux(EstNull([TaDate]);"En Cours";[TaDate]) et Tri Décroissant



Hélas non, ca marche pas car ca transforme les dates en Texte donc le
classement est faussé.

Sorry
Eric

Avatar
Buddy
Salut
Le plus simple consiste à reporter une date dite "éternelle" du genre année™99
Tu peux aussi laisser ton champ à Null mais dans ta requête tu dois mettre pour le champ trié
décroissant AnneeTri: IIf(IsNull([Annee]);9999;[Annee]) que tu masques et tu rajoutes un champ
AnneeAffichee: IIf([AnneeTri]™99;Null;[AnneeTri])

Sans se creuser trop cela devrait marcher.

Ouala
Bye
Buddy


"sev" a écrit dans le message de
news:
Bonjour,

Petit problème de tri.
J'ai un champ numérique correspondant à une année. Pour certaines études de ma base, l'année
est null.

Je voudrais trier mes enregistrements du plus récent au plus ancien. Pour moi, quand l'année
n'est pas renseignée (null), cela veut dire que mon étude est encore en cours donc c'est la plus

récente.
Le problème est qu'un tri décroissant sur la colonne année, met les études ayant un champ null
à la fin.

Comment faire, si ce n'est utiliser une valeur qui n'a aucun sens et qui sera toujours plus grande
(pour apparaitre en premier)

Merci



Avatar
3stone
Salut,

"sev"
Petit problème de tri.
J'ai un champ numérique correspondant à une année. Pour certaines études de ma base, l'année est
null.

Je voudrais trier mes enregistrements du plus récent au plus ancien. Pour moi, quand l'année n'est
pas renseignée (null), cela veut dire que mon étude est encore en cours donc c'est la plus récente.

Le problème est qu'un tri décroissant sur la colonne année, met les études ayant un champ null à
la fin.

Comment faire, si ce n'est utiliser une valeur qui n'a aucun sens et qui sera toujours plus grande
(pour apparaitre en premier)

Merci





Crée un champ calculé dans la requête:

TriDate: Nz(TonChampDate ; Date())

les NULL seront remplacer par la date du jour...



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------