|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 8 ![]() |
Bonjour à tous,
Petit nouveau sur le forum, je sollicite votre aide. Dans un formulaire Access 2010, je cherche l'expression permettant de calculer la prochaine échéance future d'un contrat de X années qui se renouvelle automatiquement pour des périodes de même durée. Exemple Date de début de contrat 01/05/2001 pour une durée de 3 ans. Les échéances successives sont 01/05/2004, 2007, 2010, 2013, .... Étant donné que nous sommes le 22/05/2011, donc après le 01/05/2010, je souhaiterais que l'expression affiche la date du 01/05/2013 qui est la prochaine échéance du contrat. J'ai utilisé l'expression AjDate("aaaa";[duree_contrat];[date_debut_contrat]) qui me donne la prochaine échéance (01/05/2004) mais ne me donne pas l'échéance future. Je ne voudrais, dans la mesure du possible, ne pas utiliser de code VBA (aucune connaissance dans ce domaine !). Toutefois, si c'est la seule solution, je remonterai mes manches... Merci de votre aide Bien Cordialement |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Jlv25,
Citation:
Citation:
Essaies Code sql :
AjDate("yyyy";[duree_contrat];Jour([date_effet]) & "/" & Mois([date_effet]) & "/" & Année(Date()))
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Robert JAMINRetraité Inscription : juillet 2009 Messages : 1 223 ![]() |
Bonjour,
Une suggestion basée sur des champs calculés dans un requête. Je considère que l'on a les champs Dt_Debut_Ctr, Duree_Ctr et je veux calculer Proch_Ech Je fais le calcul en 3 étapes Etape 1 calcul du NbrEch déjà échues. Code :
NbrEch: Int((Année(Date())-Année([Dt_Debut_Ctr]))/[Duree_Ctr]) Code :
Der_Ech: AjDate("aaaa";[Duree_Ctr]*[NbrEch];[Dt_Debut_Ctr]) Code :
Proch_Ech: AjDate("aaaa";[Duree_Ctr];[Der_Ech])
__________________
Cordialement. RJ |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 8 ![]() |
Bonjour,
Merci de votre réponse et pour la belle leçon de logique ! La méthode fonctionne bien sauf dans le cas où l'année de fin de la dernière échéance est identique à l'année en cours. Exemple Contrat au 1/6/2005 pour une durée de 3 ans ; la prochaine échéance sera au 1/6/2011. Le calcul du nombre d'échéances échues donne 2. Le calcul de la dernière échéance passée donne donc 1/6/2011 et une prochaine échéance au 1/6/2014. Je continue sur cette piste. Si vous avez une idée, n'hésitez pas. Merci à Richard_35 de m'avoir ré-aiguillé sur le forum suite à mon envoi en MP. |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Jlv25 et Rjamin,
Une solution proche de celle de Rjamin et identique, dans l'esprit. Via l'assistant (DDJ=Date du jour) : Code sql :
DDJ-Début: DiffDate("yyyy";[debut];Date()) Code sql :
DDJ-Début/durée: Ent([DDJ-Début]/[duree]) Code sql :
CalcEch: AjDate("yyyy";[DDJ-début/durée]*[duree];[debut]) Ce qui est sûr, c'est qu'il faut faire Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Robert JAMINRetraité Inscription : juillet 2009 Messages : 1 223 ![]() |
Bonjour,
Essayer en modifiant le calcul du NbrEch Remplacer la formule par Code :
NbrEch: Int((Date()-[Dt_Debut_Ctr])/365,25/[Duree_Ctr])
__________________
Cordialement. RJ |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 8 ![]() |
Bonjour,
Après essai de différentes dates, dont des 29 février, la formule fonctionne bien (celle de rjamin, je n'ai pas testé celle de Richard). Merci à vous deux de votre collaboration efficace Bien Cordialement |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com