OVH Cloud OVH Cloud

Jours ouvrables

13 réponses
Avatar
guy boily
Bonjour à tous,
Dans un état(basé sur une requête) j'ai un contrôle nommé [date]. Je
voudrais ajouter un contrôle (nommé [dateouvre]) qui contiendrait le résultat
du calcul suivant: [Date] + 10 jours ouvrables
exemple: [date]= 20-nov-2007 alors [datevouvre]=04-dec-2007(en supposant que
le samedi et le dimanche ne sont pas ouvrables.)

je ne sais pas comment faire...pouvez-vous m'aider s.v.p.

Merci




boily_SLSJ

3 réponses

1 2
Avatar
guy boily
Bonjour Gloops
je laisse mes espoirs entre les mains de 3 stones

merci encore

--
boily_SLSJ



guy boily a écrit, le 20/11/2007 18:52 :
Bonjour vous trois et merci
merci à Michel D mais effectivement je ne veux pas compter les samedi
dimanche et jours fériés. Pour la solution à Gloops..j'ai la tête qui me
tourne quand on me demande d'adapter des solutions EXCEL en ACCESS mais


Je t'avouerai que moi aussi je suis soulagé de ne pas avoir à aller plus
loin dans cette direction ;)




Public Function Date_Prochaine_Ouvrables(Date_Actuelle As Date,
Nombre_de_Jours As Integer, Incrément As Integer) As Date


Là, je dois avouer que pour le moment, je ne vois pas à quoi sert
l'incrément.

Il s'agit de multiplier le résultat par un certain nombre ?





Avatar
3stone
Salut,

[...]
| j'ai été voir lien mais peux-tu m'aider à la mettre
| opérationnelle de sorte qu'elle puisse renseigner le contrôle [dateouvre] à
| l'ouverture de mon état:
| mon contrôle à renseigner : contrôle [dateouvre]
| date de départ: contrôle [date]
| nb de jours ouvrables à additionner: 10
| ou place-t-on cette fonction?
| comment en faire l'appel et ou?
|


Si tu lis bien, Jessy à scindé cette fonction en trois fonctions distinctes.

Celle qui te concerne: fAddOpenDay(SartDate, AddDay)

Cette fonction à besoin de connaître la date pivot qu'est Pâques,
donc fPaques() et sa soeur qui calcule les jours fériés qui se basent
sur Pâques.

Le fait de scinder une "grosse" fonction permet de faire appel à
une "sous fonction" comme ici lorsque l'on souhaite simplement
savoir quand tombe la Pâques en 2030 par exemple.

Toi, tu places simplement les trois fonctions dans un module
"modTraitementDate" par ex.

Ensuite, tu utilise ta fonction comme tu le ferais avec DateAdd()

Donc: fAddOpenDay( [contrôle] , 10)

Encore une remarque:
Le site de Jessy étant un scrip PHP, un système de sécurité
fait des remplacements de certains contenus. Ainsi, les opérateurs
"/" et "" se font supprimer si on ne les doublent pas...
Cela à certainement échapé à Jessy et fait que la fonction
fPaques() n'est pas fonctionnelle comme affichée.

Je te la colle donc ci-dessous :

Public Function fPaques(wAn%) As Date
'Pâques est le dimanche qui suit le quatorzième jour de la
'Lune qui tombe le 21 mars ou immédiatement après

Dim wA%, wB%, wC%, wD%, wE%, wF%, wG%, wH%
Dim wI%, wJ%, wK%, wL%, wM%, wN%, wP%

wA = wAn Mod 19 'Calcul du rang de l'année dans le cycle lunaire qui a 19 ans
wB = wAn 100 'Calcul du siècle
wC = wAn Mod 100 'Calcul du rang de l'année dans le siècle
wD = wB 4
wE = wB Mod 4
wF = (wB + 8) 25
wG = (wB - wF + 1) 3
wH = (19 * wA + wB - wD - wG + 15) Mod 30
wI = wC 4
wK = wC Mod 4
wL = (32 + 2 * wE + 2 * wI - wH - wK) Mod 7
wM = (wA + 11 * wH + 22 * wL) 451
wN = (wH + wL - 7 * wM + 114) 31 'détermine le mois
wP = (wH + wL - 7 * wM + 114) Mod 31 'détermine le jour
fPaques = DateSerial(wAn, wN, wP + 1)

'** A titre d'info :************'
'** dtVenSaint = fPaques - 2****'
'** dtLunPaq = fPaques + 1******'
'** dtAscension = fPaques + 39**'
'** dtDimPent = fPaques + 49****'
'** dtLunPent = fPaques + 50****'

End Function


Les trois fonctions sont aussi dans ce fichier joint :
http://cjoint.com/?luuAFM4gso

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
guy boily
bonjour Pierre

Merci pour ton dévouement, il est présentement 4:00 a.m chez-nous et je vais
esseyer tout ça au bureau ce matin et je te reviens. Merci encore de tes
conseils

À plus...



boily_SLSJ



Salut,

[...]
| j'ai été voir lien mais peux-tu m'aider à la mettre
| opérationnelle de sorte qu'elle puisse renseigner le contrôle [dateouvre] à
| l'ouverture de mon état:
| mon contrôle à renseigner : contrôle [dateouvre]
| date de départ: contrôle [date]
| nb de jours ouvrables à additionner: 10
| ou place-t-on cette fonction?
| comment en faire l'appel et ou?
|


Si tu lis bien, Jessy à scindé cette fonction en trois fonctions distinctes.

Celle qui te concerne: fAddOpenDay(SartDate, AddDay)

Cette fonction à besoin de connaître la date pivot qu'est Pâques,
donc fPaques() et sa soeur qui calcule les jours fériés qui se basent
sur Pâques.

Le fait de scinder une "grosse" fonction permet de faire appel à
une "sous fonction" comme ici lorsque l'on souhaite simplement
savoir quand tombe la Pâques en 2030 par exemple.

Toi, tu places simplement les trois fonctions dans un module
"modTraitementDate" par ex.

Ensuite, tu utilise ta fonction comme tu le ferais avec DateAdd()

Donc: fAddOpenDay( [contrôle] , 10)

Encore une remarque:
Le site de Jessy étant un scrip PHP, un système de sécurité
fait des remplacements de certains contenus. Ainsi, les opérateurs
"/" et "" se font supprimer si on ne les doublent pas...
Cela à certainement échapé à Jessy et fait que la fonction
fPaques() n'est pas fonctionnelle comme affichée.

Je te la colle donc ci-dessous :

Public Function fPaques(wAn%) As Date
'Pâques est le dimanche qui suit le quatorzième jour de la
'Lune qui tombe le 21 mars ou immédiatement après

Dim wA%, wB%, wC%, wD%, wE%, wF%, wG%, wH%
Dim wI%, wJ%, wK%, wL%, wM%, wN%, wP%

wA = wAn Mod 19 'Calcul du rang de l'année dans le cycle lunaire qui a 19 ans
wB = wAn 100 'Calcul du siècle
wC = wAn Mod 100 'Calcul du rang de l'année dans le siècle
wD = wB 4
wE = wB Mod 4
wF = (wB + 8) 25
wG = (wB - wF + 1) 3
wH = (19 * wA + wB - wD - wG + 15) Mod 30
wI = wC 4
wK = wC Mod 4
wL = (32 + 2 * wE + 2 * wI - wH - wK) Mod 7
wM = (wA + 11 * wH + 22 * wL) 451
wN = (wH + wL - 7 * wM + 114) 31 'détermine le mois
wP = (wH + wL - 7 * wM + 114) Mod 31 'détermine le jour
fPaques = DateSerial(wAn, wN, wP + 1)

'** A titre d'info :************'
'** dtVenSaint = fPaques - 2****'
'** dtLunPaq = fPaques + 1******'
'** dtAscension = fPaques + 39**'
'** dtDimPent = fPaques + 49****'
'** dtLunPent = fPaques + 50****'

End Function


Les trois fonctions sont aussi dans ce fichier joint :
http://cjoint.com/?luuAFM4gso

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)





1 2