Probleme de calcul de champ access

Résolu
SAlimata_8269 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
SAlimata_8269 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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

RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention   31
 
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+
0
SAlimata_8269 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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!
0
RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention   31
 
: 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 ?
0
RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention   31
 
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
0
SAlimata_8269 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention   31
 
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...
0
SAlimata_8269 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention   31
 
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+
0
SAlimata_8269 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention   31
 
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+
0
SAlimata_8269
 
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.
0
SAlimata_8269 > SAlimata_8269
 
Mais à travers l'explication que vous m'avez donné pour les calculs j'ai compris . merci beaucoup pour votre aide!!
0
RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention   31 > 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.
0
SAlimata_8269 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > RV71 Messages postés 656 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour d’accord j’ai compris merci bien!!!
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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?
0
SAlimata_8269
 
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 !!
0