Calcul nombre d'échéances exigible sous access [Résolu]

Signaler
-
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
-
bonjour !
voila mon probleme , j'ai pas pu calculer le nbre exigible des echeances:
exemple : 1ère échéance : 01/01/2013, le nombre exigible = 2 . c à dire janvier+ fevrier 2013 .
je ne c pas comment faire le calcul avec la date systeme (sous access) c à dire: le mois en cours - la date de la 1ere echeance.
une aide svp
merci

9 réponses

Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Salut,
C'est quoi que tu veux ? un code SQL ou Delphi ?
Le nombre exigible est le nombre d'échéances mensuelles dues depuis la date de la première échéance ?


Simon
j'ai une base de données sous access, qui contiens :
1- date 1ere échéance
2- nombre échéances dues-( exigible)
3-montant due
4-nombre réglé
5-montant réglé
6-nombre impayé-
7-mt impayés
chaque fin du mois j'ajoute manuellement une échéance dans la 2ème colonne, et sa me fatigue vraiment, vu le nombre important de mes clients, qui augmente chaque mois , alors que je cherche comment calculer, voila
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Ok, j'essaie de voir ça. Je te tiens au courant

Simon
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Alors, j'ai cette requête à te proposer. Par contre, elle est testée sur Firebird, je ne travaille pas sous Access...
Cette requête (à adapter à tes noms de champs et de table) ne fonctionnera que si tu as un N° de client dans ta table.
Je suppose que tu as oublié de le mettre dans la description de ta table, car je ne vois pas comment tu peux t'y retrouver sinon...

Update CLIENTS T2
Set NB_MENSUALITE /* Calcul du nombre de mensualités dues nombre de mois - la correction si le jour anniversaire
n'est pas dépassé + le nombre d'années complètes x 12 mois */
Select (NB_MONTH - CORR_MONTH + NB_YEAR * 12) as NB_MENSUALITE
from
(
Select  
Case 
/* Calcul d'une correction : si le jour anniversaire n'est pas dépassé, la mensualité n'est pas due */
substring( (cast(Extract(DAY from CURRENT_DATE) - Extract(DAY from T1.DATE1) as varchar(3))) from 1 for 1)
When '-' then 1  /* Jour non dépassé */
else 0 /* Jour anniversaire dépassé */
end as CORR_MONTH,
Case 
/* Calcul du nombre de mois dus : si le numéro du mois de la date en cours est avant celui de la date
de souscription, on est à cheval sur deux années */
substring( (cast(Extract(MONTH from T1.DATE1) - Extract(MONTH from CURRENT_DATE) - 1 as varchar(3))) from 1 for 1)
When '-' then /* Mois en suivant */
Extract(MONTH from CURRENT_DATE) - Extract(MONTH from T1.DATE1)
else /* à cheval sur deux années  */
12 - Extract(MONTH from T1.DATE1) + Extract(MONTH from CURRENT_DATE)
end as NB_MONTH,
Case 
/* Si on est à cheval sur deux années, le nombre de mois "à cheval" est déjà calculé dans NB_MONTH,
donc on enlève un an */
substring( (cast(Extract(MONTH from T1.DATE1) - Extract(MONTH from CURRENT_DATE) - 1 as varchar(3))) from 1 for 1)
When '-' then /* Mois en suivant */
Extract(YEAR from CURRENT_DATE) - Extract(YEAR from T1.DATE1)
else /* à cheval sur deux années  */
Extract(YEAR from CURRENT_DATE) - Extract(YEAR from T1.DATE1) - 1
end as NB_YEAR
from CLIENTS T1 
/* "Jointure" sur le n° de client */
WHERE T1.NUM_CLIENT = T2.NUM_CLIENT)



Simon
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Je précise que c'est bien du SQL, je n'ai utilisé les balises de code visual basic que pour que ce soit un peu plus lisible (vu qu'il n'y a pas de balise SQL et c'est bien dommage !!!)

Simon
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Cette requête (à adapter à tes noms de champs et de table) ne fonctionnera que si tu as un N° de client dans ta table.


NB : La "jointure" est à compléter si un client peut avoir plusieurs crédits en cours. Dans ce cas, je suppose que tu auras une clé du genre "Num_Client, Num_Credit".

Si tu bosses sous Delphi, utilises Firebird plutôt qu'access... C'est nettement plus facile.

Simon
j'ai le N° de prêt des clients, et le numéro de compte approprié.j'ai fait des calculs pour les nombre des échéances impayés: 1 , 2, 3. reste le nbr exigible calculé. je vais essayer de travailler sous delphi
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
La requête peut peut-être fonctionner sous access, je n'ai pas testé...

Simon