OVH Cloud OVH Cloud

calcul par tranche+ mise à jour champ

3 réponses
Avatar
alaincorai
Bonjour,

Dans une table je dois calculer le nombre de voix par rapport à la
valeur d'un autre champ.

Voici l'exemple :

Le champ SUPTOT= 6000 et le champ NVTER doit être = SUPTOT : 50
jusque là facile
Mais il y un barème à appliquer le voilà :

SUPTOT <50 NVTER= 0
50 NVTER=1 (par tranche de 50)
100 NVTER=2
ECT jusqu'à 2500 NVTER=50 (plafond)

Si il 99 NVTER=1 ect

Par une requête mise à jour j'ai essayé cette fonction :

VraiFaux([SUPTOT]/50<50;[SUPTOT]/50;50) mais on est limité

Quelqu'un à t'il une autre idée

Cordialement

ALAIN

3 réponses

Avatar
Pierre CFI [mvp]
bonjour
sans se lancer en code, fais des vraifaux imbriqués
exemple
VraiFaux(tt<10;0;vraifaux(tt<20;5;vraifaux(tt<100;10;20)))
si tt <10 on a 0
tt<20 on a 5
tt<100 on a 10
sinon on a 20

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"ALAIN" a écrit dans le message de news:
Bonjour,

Dans une table je dois calculer le nombre de voix par rapport à la
valeur d'un autre champ.

Voici l'exemple :

Le champ SUPTOT= 6000 et le champ NVTER doit être = SUPTOT : 50
jusque là facile
Mais il y un barème à appliquer le voilà :

SUPTOT <50 NVTER= 0
50 NVTER=1 (par tranche de 50)
100 NVTER=2
ECT jusqu'à 2500 NVTERP (plafond)

Si il 99 NVTER=1 ect

Par une requête mise à jour j'ai essayé cette fonction :

VraiFaux([SUPTOT]/50<50;[SUPTOT]/50;50) mais on est limité

Quelqu'un à t'il une autre idée

Cordialement

ALAIN


Avatar
joyeux atchoum
S'l

Il me semble que tu dois faire via VBA et executer chaque partie de ta requete ajout, une par critere
tu integres ta requete dans ta boucle et à chaque boucle tu mets à jour ta contrainte

Je pense que par ton vrai faux tu peux y arriver mais tu devras prendre en compte toutes tes contraintes. Un peu fastidieu, non

Voil
ja;
qui prefere faire des boucles mais pas pour autant tourner en rond
Avatar
phil
Si j'ai bien compris :
SUPTOT I NVTER
0-49 I 0
50-99 I 1
100-149 I 2

Donc NVTER=ENTIER(SUPTOT/50), non ?
49/50=0,98 ==> arrondi 0 (tronqué, en fait)
102/50=2.04 ==> arrondi 2

c'est ca ?

-----Message d'origine-----
Bonjour,

Dans une table je dois calculer le nombre de voix par
rapport à la

valeur d'un autre champ.

Voici l'exemple :

Le champ SUPTOT= 6000 et le champ NVTER doit être =
SUPTOT : 50

jusque là facile
Mais il y un barème à appliquer le voilà :

SUPTOT <50 NVTER= 0
50 NVTER=1 (par tranche de 50)
100 NVTER=2
ECT jusqu'à 2500 NVTERP (plafond)

Si il 99 NVTER=1 ect

Par une requête mise à jour j'ai essayé cette fonction :

VraiFaux([SUPTOT]/50<50;[SUPTOT]/50;50) mais on est limité

Quelqu'un à t'il une autre idée

Cordialement

ALAIN
.