Salut à tous apparemment je n’étais pas assez clair lors de mes précédentes explications alors je reviens avec d’avantages de renseignement :
Pour reprendre en étant clair une macro dans le menu lance la requête suivante, qui dit en SQL access :
UPDATE DISTINCTROW ((PARCELEMOLD1 INNER JOIN FISCAL ON (FISCAL.TARIF = PARCELEMOLD1.TARIF) AND (PARCELEMOLD1.COMMUP = FISCAL.COMMUP) AND (FISCAL.DEPARP = PARCELEMOLD1.DEPARP) AND (PARCELEMOLD1.CLASSOLD = FISCAL.CLASS) AND (PARCELEMOLD1.NATFOROLD = FISCAL.[GR/SGR])) INNER JOIN PARCAD01 ON (PARCELEMOLD1.COMMUP = PARCAD01.COMMUP) AND (PARCELEMOLD1.SECTIP = PARCAD01.SECTIP) AND (PARCELEMOLD1.NPARCP = PARCAD01.NPARCP)) INNER JOIN FISCANAT ON PARCELEMOLD1.NATFOROLD = FISCANAT.NATFOR SET PARCELEMOLD1.Revimpotot = (([CONTEP])/10000)*(([COEFREVA])*([REVLOC])), PARCELEMOLD1.[Taxe foncière] = (([CONTEP])/10000)*(([COEFREVA])*([REVLOC])), PARCELEMOLD1.RES = Year([ANIMPOSITION])-[FISCANAT]![NBANNEE], PARCELEMOLD1.RevenuIR = CalculIR([RES])*[PARCELEMOLD1]![Revimpotot];
Ce que je n’arrive pas à comprendre c’est comment access sait qu’il doit à ce niveau aller chercher dans le module introduction la fonction CalculIR
Description de ce module :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Function CalculIR(laDate)
Dim result
'***********************************************************
'Calcul du revenu IR
'***********************************************************
'If IsNull(laDate) Then
'result = 1
'Else
If laDate <= Year(date) Then
result = 1
CalculIR = result
End If
If laDate > Year(date) Then
result = 0.5
CalculIR = result
Else
result = 1
CalculIR = result
'End If
End If
End Function |
En plus je dois modifier tout cela, cette partie reste vraie seulement pour des calculs antérieurs à 2001, je m’explique : je dois modifier ce mode de calcul sans le jeter :
1- si la déclaration a été faite avant 2001 on conserve ce mode de calcul
2- si la déclaration a été faite après 2001 il faut choisir le mode de calcul le + avantageux pour le propriétaire, càd choisir entre : le calcul en 1 et le calcul de revimpotot pour lequel la valeur du champ REVLOC sera différente sans multiplication par le coefficient calcul IR, ensuite on prend le moins cher des deux.
Comment puis je insérer ce nouvel élément de comparaison ? Est-ce possible dans la même requête, ou faut-il en ajouter une ? Ca me parait un peu obscur tout ça… Vu que c’est une requête de mise à jour ça ne me semble pas simple de commencer à comparer. S’il s’agit de faire les comparaisons dans le module je ne sais pas comment appeler les champs, puisqu’ils n’ont rien à voir avec CalculIR (quand je dis rien à voir c que calculIR est un coef permettant de changer la valeur de RevenuIR et que REVLOC est un champ qui permet de calculer Revimpotot, qui est = à RevenuIR quand CalculIR=1)
Help, je sens que je coule…
Merci en tout cas à ceux qui me jetteront une petite bouée, mais si vous avez un radeau ce sera encore mieux
Partager