Probleme de calcul de champ access [Résolu]

Signaler
Messages postés
6
Date d'inscription
vendredi 17 juillet 2020
Statut
Membre
Dernière intervention
23 juillet 2020
-
Messages postés
6
Date d'inscription
vendredi 17 juillet 2020
Statut
Membre
Dernière intervention
23 juillet 2020
-
Bonjour, moi j'ai un code en access 2016 que j'aimerais savoir ça traduit quoi exactement si vous pouvez m'aidez merci! Voici le code: : Int(([DT]-SérieDate(Année([DT]-JourSem([DT]-1)+4);1;3)+JourSem(SérieDate(Année([DT]-JourSem([DT]-1)+4);1;3))+5)/7)

avec DT un champ date.

8 réponses

Messages postés
450
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
16 octobre 2020
30
Bonjour,
drôle de fonction, tu veux retourner quoi ?
A mon avis il y a moyen de la simplifier, là elle est bien compliquée :-(
Reprenons :
INT va te renvoyer un nombre entier --> ex : int (17.8 va retourner 17)
SérieDate te renvoie une date --> ex : sériedate(2020;7;17) va retourner 17/07/2020
JourSem te renvoie un entier correspondant au jour de la semaine --> ex : JourSem(#17/07/2020#) va retourner 6 car le 17/07/2020 est un vendredi)

A+
Messages postés
6
Date d'inscription
vendredi 17 juillet 2020
Statut
Membre
Dernière intervention
23 juillet 2020

Bonjour! pour éclaircir un peu le problème, j’ai une base qui calcule les unités qui sont en fonction de l'année et la semaine( par exemple Unité = 2020 -19) et c'est bloqué en une semaine sans bouger. On a utilisé trois formule pour le calcul des unités:
A)
EmWeek: Int(([DT]-SérieDate(Année([DT]-JourSem([DT]-1)+4);1;3)+JourSem(SérieDate(Année([DT]-JourSem([DT]-1)+4);1;3))+5)/7)

B)
EmYear: VraiFaux(JourSem([DT];2)=1;Année([DT]+3);VraiFaux(JourSem([DT];2)=2;Année([DT]+2);VraiFaux(JourSem([DT];2)=3;Année([EmD]+1);VraiFaux(JourSem([DT];2)=5;Année([DT]-1);VraiFaux(JourSem([DT];2)=6;Année([DT]-2);VraiFaux(JourSem([DT];2)=7;Année([DT]-3);Année([DT])))))))

C)
UNIT: VraiFaux([EmWeek]>9;CChaîne([EmYear])+CChaîne("-")+CChaîne([EmWeek]);CChaîne([EmYear])+CChaîne("-")+CChaîne("0")+CChaîne([EmWeek])).

La question que j'avais poser c'etait de savoir le calcul a eté fait au niveau de la formule A). Merci!
Messages postés
450
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
16 octobre 2020
30
: Int(([DT]-SérieDate(Année([DT]-JourSem([DT]-1)+4);1;3)+JourSem(SérieDate(Année([DT]-JourSem([DT]-1)+4);1;3))+5)/7)

DT = 17/07/2020
INT(
a/ (17/07/2020-sériedate(année(17/07/2020-joursem(17/07/2020-1)+4) ;1 ;3)
a/ (17/07/2020-seriedate(année(17/07/2020-joursem(16/07/2020)+4) ;1 ;3)
a/ (17/07/2020 – seriedate(année(17/07/2020-5+4) ;1 ;3)
a/ (17/07/2020 – seriedate(année(16/07/2020) ;1 ;3)
a/ (17/07/2020 – 03/01/2020)
a = 197

b / joursem(seriedate(année(17/07/2020-joursem(17/07/2020-1)+4) ;1 ;3))+5
b/ joursem(seriedate(année(17/07/2020-joursem(16/07/2020+4) ;1 ;3))+5
b/ joursem(seriedate(année(17/07/2020-joursem(20/07/2020) ;1 ;3))+5
b/ joursem(seriedate(année(17/07/2020-2) ;1 ;3))+5
b/ joursem(03/01/2020)+5
b/ 6 +5
b = 11

Donc INT (197-11)/7 = 26

Si mes calculs sont exacts, mais pourquoi utilises tu cette fonction ?
Messages postés
450
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
16 octobre 2020
30
Le "/7" à la fin de la fonction me fait croire que celle-ci est écrite pour calculer le nombre de semaines...
Il y a nettement + simple, mais vu que tu n'as pas donné plus de détails et répondu, j'en reste là...

Bonne continuation
Messages postés
6
Date d'inscription
vendredi 17 juillet 2020
Statut
Membre
Dernière intervention
23 juillet 2020
>
Messages postés
450
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
16 octobre 2020

Bonjour! vraiment merci de m'avoir répondu, je n'en connais pas d'autre formule c'est pourquoi si vous pouvez m'aidez avec d'autre si vous me le permettez j’aimerai savoir comment vous avez fait le calcul de joursem(seriedate(année(17/07/2020-2) ;1 ;3))+5 . Merci d'avance
Messages postés
450
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
16 octobre 2020
30
Bonjour,
tu veux calculer quoi ? Obtenir quel résultat ????

En supposant que ton champ date soit un champ date réduit (17/07/2020) :
17/07/2020 - 2 = 15/07/2020
année(15/07/2020)=2020
seriedate(2020;1;3) = 03/01/2020
JourSemaine(03/01/2020) = 6 (le 03 janvier 2020 était un vendredi)
6 + 5 = 11

Mais je ne vois pas l'intérêt du truc, dis nous donc ce que tu souhaites obtenir, là tu manipules des dates sans trop intérêt à première vue...
Messages postés
6
Date d'inscription
vendredi 17 juillet 2020
Statut
Membre
Dernière intervention
23 juillet 2020

Je veux calculer les semaines d'émergence et pour calculer ces semaines émergence il faut une date émergence qui est DT, après je calcul les unités(Unit) en fonction de la semaine et cette formule est:
Unit:
VraiFaux([EmWeek]>9;CChaîne([EmYear])+CChaîne("-")+CChaîne([EmWeek]);CChaîne([EmYear]
)+CChaîne("-")+CChaîne("0")+CChaîne([EmWeek]))

Exemple de Unit(2020-19)
Messages postés
450
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
16 octobre 2020
30
C'est quoi des semaines d'émergences ???

Quel rapport avec ta première fonction qui calculait un nombre de jours au 03/01/N ??

A+
Messages postés
6
Date d'inscription
vendredi 17 juillet 2020
Statut
Membre
Dernière intervention
23 juillet 2020

C'est l'élevage des moustiques qu'on fait , la semaine qu'on couple les moustiques( mâle femelle) est appelée semaine d'émergence . La question que javais poser pour comprendre 03/01/2020 c'est ce que vous avez calculer que je comprenais pas, sinon ma question initiale etait cette formule Emweek: Int(([DT]-SérieDate(Année([DT]-JourSem([DT]-1)+4);1;3)+JourSem(SérieDate(Année([DT]-JourSem([DT]-1)+4);1;3))+5)/7)
Et la formule de Unit dependait de celui la.
Messages postés
450
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
16 octobre 2020
30
Pendant que l'on se bat contre les moustiques, tu les accouples, ce n'est pas gagné :-) :-)

Mais je ne comprends toujours pas, tout du moins j'imagine que tu veux calculer un jour (ou une semaine) par rapport à la date d'accouplement, afin de surveiller les naissances, no ?

Expliques ce que tu veux obtenir à partir de quoi en étant précis et en évitant de copier coller des formules pour voir si tu ne peux pas simplifier tout cela...

A+

Bonjour! Ne vous inquiète pas pour ça c'est dans le but de lutter contre ces moustiques qu'on fait l'élevage les mâles sont heradiés et après ils vont stérilisé ceux qui sont dans la nature. Sinon ce que je veux avoir les semaines à lesquelles ils commencent à pondre pendant que si on couple c'est 20 à 25 jours ils commencent à pondre et la durée de pondre c'est trois mois.
> SAlimata_8269
Mais à travers l'explication que vous m'avez donné pour les calculs j'ai compris . merci beaucoup pour votre aide!!
Messages postés
450
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
16 octobre 2020
30 > SAlimata_8269
Je ne m'inquiétais pas, c'était de l'humour :-)

Du coup tu as une fonction qui passe par des jours (on en rajoute 1 par ci, 3 par là...), et tu me dis que la ponte commence approximativement entre 20 et 91 jours (3 mois) !
Pourquoi ne pas effectuer alors un simple [date debut de ponte]= [date accouplement] + 20 et un [date fin de ponte] = [date accouplement] + 91 ?

Allez @+ et mets le fil en résolu du coup.
Messages postés
6
Date d'inscription
vendredi 17 juillet 2020
Statut
Membre
Dernière intervention
23 juillet 2020
>
Messages postés
450
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
16 octobre 2020

Bonjour d’accord j’ai compris merci bien!!!
Messages postés
12644
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020
702
bonjour,
si je comprends bien, tu utilises une formule, sans savoir pourquoi, et tu nous demandes de t'expliquer à quoi elle sert.
ai-je bien compris?
pourquoi veux-tu comprendre?

Bonjour! Je n'ai pas encore utilisé je devrais utilisé et je comprenais pas , mais à travers les explications j'ai compris le cheminement de la formule. Merci beaucoup pour votre contribution !!