OVH Cloud OVH Cloud

Round Down ??

4 réponses
Avatar
Bruno Frisque
Bonjour le groupe,

Je crée une db qui est basée sur des fichiers XL.

XL possède une fonction RoundDown (et RounUp).

J'ai beau chercher je ne trouve pas l'équivalent sous Access.
mon code est le suivant

If Not IsNull(DateNaiss) Then
AgeAu = (Forms!PersonnelPresent!Text70 - DateNaiss) / 365 '(Text70
est à la date du)
AgeAu = Round(AgeAu, 0) 'round down as in XL pas possible???
End If
Comment faire pour que p. ex. 54.6 donne 54 ?

D'avance merci !

4 réponses

Avatar
Eric
Bonjour,

Je ne connais pas les fonctions RoundUp() et RoundDown() d'Excel mais si
tu veux l'age en tenant compte du mois et du jour, par exemple pour
quelqu'un qui serait né le 12/12/03 un age de 2 ans et pour un autre né
le 10/11/1951 un age de 54 ans, il te faut utiliser la fonction
DateDiff() ou DiffDate() en Fr pondérée par le booléenne tenant compte
du mois et jour de naissance. En enlevant la booléenne tu dois avoir le
résultat de la fonction RoundUp().

Ce qui donnerait:
If Not IsNull(DateNaiss) Then
AgeAuÚteDiff("yyyy",[DateNaiss],Forms!PersonnelPresent!Text70)+(Format(Forms!PersonnelPresent!Text70,"mmdd")<Format([DateNaiss],"mmdd"))
End if

Bonjour le groupe,

Je crée une db qui est basée sur des fichiers XL.

XL possède une fonction RoundDown (et RounUp).

J'ai beau chercher je ne trouve pas l'équivalent sous Access.
mon code est le suivant

If Not IsNull(DateNaiss) Then
AgeAu = (Forms!PersonnelPresent!Text70 - DateNaiss) / 365 '(Text70
est à la date du)
AgeAu = Round(AgeAu, 0) 'round down as in XL pas possible???
End If
Comment faire pour que p. ex. 54.6 donne 54 ?

D'avance merci !






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Jac
Salut Bruno,

pour que 54.6 donne 54, il te suffit de prendre la partie entière de la
valeur (troncature) donc utiliser la fonction ENT, ce qui donnerait
ent(54.6). Si ton access est en version UK, c'est INT (integer).

JAC

"Bruno Frisque" a écrit dans le message de news:

Bonjour le groupe,

Je crée une db qui est basée sur des fichiers XL.

XL possède une fonction RoundDown (et RounUp).

J'ai beau chercher je ne trouve pas l'équivalent sous Access.
mon code est le suivant

If Not IsNull(DateNaiss) Then
AgeAu = (Forms!PersonnelPresent!Text70 - DateNaiss) / 365 '(Text70
est à la date du)
AgeAu = Round(AgeAu, 0) 'round down as in XL pas possible???
End If
Comment faire pour que p. ex. 54.6 donne 54 ?

D'avance merci !






Avatar
Bruno Frisque
Tout grand merci,

Cà parait bien compliqué, versus XL, mais çà fonctionne parfaitement !
un age de 54,3 donne 53
un age de 53,7 donne 53 = parfait.

+ Grand merci d'avoir mis un code qui fonctionne immédiatement!!
à +



"Eric" wrote in message
news:%
Bonjour,

Je ne connais pas les fonctions RoundUp() et RoundDown() d'Excel mais si
tu veux l'age en tenant compte du mois et du jour, par exemple pour
quelqu'un qui serait né le 12/12/03 un age de 2 ans et pour un autre né le
10/11/1951 un age de 54 ans, il te faut utiliser la fonction DateDiff() ou
DiffDate() en Fr pondérée par le booléenne tenant compte du mois et jour
de naissance. En enlevant la booléenne tu dois avoir le résultat de la
fonction RoundUp().

Ce qui donnerait:
If Not IsNull(DateNaiss) Then
AgeAuÚteDiff("yyyy",[DateNaiss],Forms!PersonnelPresent!Text70)+(Format(Forms!PersonnelPresent!Text70,"mmdd")<Format([DateNaiss],"mmdd"))
End if

Bonjour le groupe,

Je crée une db qui est basée sur des fichiers XL.

XL possède une fonction RoundDown (et RounUp).

J'ai beau chercher je ne trouve pas l'équivalent sous Access.
mon code est le suivant

If Not IsNull(DateNaiss) Then
AgeAu = (Forms!PersonnelPresent!Text70 - DateNaiss) / 365
'(Text70 est à la date du)
AgeAu = Round(AgeAu, 0) 'round down as in XL pas possible???
End If
Comment faire pour que p. ex. 54.6 donne 54 ?

D'avance merci !






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Bruno Frisque
Super JAC !
Voilà qui est tout simple !
Int(54.6) donne bien 54.
grand merci !
Bruno


"Jac" wrote in message
news:44ae0cdf$0$30122$
Salut Bruno,

pour que 54.6 donne 54, il te suffit de prendre la partie entière de la
valeur (troncature) donc utiliser la fonction ENT, ce qui donnerait
ent(54.6). Si ton access est en version UK, c'est INT (integer).

JAC

"Bruno Frisque" a écrit dans le message de news:

Bonjour le groupe,

Je crée une db qui est basée sur des fichiers XL.

XL possède une fonction RoundDown (et RounUp).

J'ai beau chercher je ne trouve pas l'équivalent sous Access.
mon code est le suivant

If Not IsNull(DateNaiss) Then
AgeAu = (Forms!PersonnelPresent!Text70 - DateNaiss) / 365
'(Text70 est à la date du)
AgeAu = Round(AgeAu, 0) 'round down as in XL pas possible???
End If
Comment faire pour que p. ex. 54.6 donne 54 ?

D'avance merci !