OVH Cloud OVH Cloud

Etrange calcul

5 réponses
Avatar
Serge Deimerly
Application de paye en access 97
une ligne se calcule mal
on supprime ce bulletin et l'on réexécute le même traitement
cette ligne se calcule bien ??

quand la ligne se calcule mal, le programme utilise un taux qui a été
changé le mois précédent et qui n'existe plus dans la table des taux
???
les bases ont été réparées, rien n'y fait
la table des taux a été supprimée et recréée, rien n'y fait
toute tentative de debugging fait que la ligne se calcule bien ?? (je
n'arrive jamais à reproduire l'erreur ??
Une idée de recherche ???

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

5 réponses

Avatar
Patrick
bonjour serge,

Application de paye en access 97
une ligne se calcule mal
on supprime ce bulletin et l'on réexécute le même traitement
cette ligne se calcule bien ??


étrange en effet

quand la ligne se calcule mal, le programme utilise un taux qui a été
changé le mois précédent et qui n'existe plus dans la table des taux ???


à priori l'appli trouve un taux ailleurs ou une valeur par défaut
peut-être, y a t-il une table temporaire ?
en fait il faudrait tracer le calcul à partir d'un point d'arrêt dans le
code....

les bases ont été réparées, rien n'y fait
la table des taux a été supprimée et recréée, rien n'y fait
toute tentative de debugging fait que la ligne se calcule bien ?? (je
n'arrive jamais à reproduire l'erreur ??
Une idée de recherche ???


pas évident compte tenu que nous ne savons pas comment est traité ce calcul
!

poste nous le code employé lors de ce calcul, on pourra peut-être y voir
plus clair

Patrick

Avatar
3stone
Bonjour *aussi*

"Serge Deimerly"
Application de paye en access 97
une ligne se calcule mal
on supprime ce bulletin et l'on réexécute le même traitement
cette ligne se calcule bien ??


comment fait-on pour qu'il calcule mal ?


quand la ligne se calcule mal, le programme utilise un taux qui a été
changé le mois précédent et qui n'existe plus dans la table des taux
???


difficile d'utiliser quelque chose qui n'existe pas ;-)


les bases ont été réparées, rien n'y fait
la table des taux a été supprimée et recréée, rien n'y fait


ce laisse encore à penser que l'on calcule mal...

toute tentative de debugging fait que la ligne se calcule bien ?? (je
n'arrive jamais à reproduire l'erreur ??
Une idée de recherche ???


oui ! Comment on calcule ?

;-)


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Serge Deimerly
Il se trouve que Patrick a formulé :
bonjour serge,

Application de paye en access 97
une ligne se calcule mal
on supprime ce bulletin et l'on réexécute le même traitement
cette ligne se calcule bien ??


étrange en effet

quand la ligne se calcule mal, le programme utilise un taux qui a été
changé le mois précédent et qui n'existe plus dans la table des taux ???


à priori l'appli trouve un taux ailleurs ou une valeur par défaut
peut-être, y a t-il une table temporaire ?
en fait il faudrait tracer le calcul à partir d'un point d'arrêt dans le
code....

les bases ont été réparées, rien n'y fait
la table des taux a été supprimée et recréée, rien n'y fait
toute tentative de debugging fait que la ligne se calcule bien ?? (je
n'arrive jamais à reproduire l'erreur ??
Une idée de recherche ???


pas évident compte tenu que nous ne savons pas comment est traité ce calcul
!

poste nous le code employé lors de ce calcul, on pourra peut-être y voir
plus clair

Patrick


voici la fonction
======================================================= Public Function ALLEGEMENT_CHAUFFEUR(Brut, Horaire, gmr2)
Dim coefficient

coefficient = (0.234 / 0.6) * ((1.6 * gmr2 * Horaire / Brut) - 1)
coefficient = Int((coefficient + 0.0005) * 1000) / 1000
If coefficient > 0.234 Then coefficient = 0.234
ALLEGEMENT_CHAUFFEUR = Int(((Brut * coefficient) + 0.005) * 100) / 100
If ALLEGEMENT_CHAUFFEUR < 0 Then ALLEGEMENT_CHAUFFEUR = 0


End Function
====================================================================== Rien de spécial à dire
je passe les valeurs brut: 2145.49 heures: 208 gmr2: 7.61
je dois avoir en retour 150.18
mais au premier passage, j'obtiens 94.40
je suppose que le calcul se fait donc
avec 2145.49 196 7.61
ou
2145.49 208 7.18 (qui était l'ancien taux les mois précédents)

mon problème est que si je mets un point d'arret ou un debug.print pour
tester le contenu de mes paramètres tout rentre dans l'ordre.

Dès que je touche au VBA tout rentre dans l'ordre ????

c'est ça qui me rend perplexe!!

merci d'avoir répondu!!

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
Patrick
Re.... serge,

je viens de tester ta fonction dans une base , celà fonctionne....
Effectivement les 94.40 obtenus correspondent à la GMR de 7.18
.............. OU ............ à 196 heures

je suis tout aussi perplexe

En amont du lancement de la fonction, le paramètre GMR qui est passé doit de
manière
aléatoire être de 7.18 au lieu de 7.61.....ou 196 heures plafonnées au lieu
des 208 ? reste à trouver "venant d'ou",
access ne peut pas inventer une valeur sortie d'un chapeau

Moi je vérifierais
1) si d'aventure cette GMR n'existe pas en tant que variable
publique....figée à 7.18 par exemple
2) n'as tu pas une table "SMIC" ou trainerais ce 7.18 ? (ancienne valeur
horaire du SMIC) qui parasiterais
3) pour lever le doute entre 196 heures au lieu de 208 et 7.18 au lieu de
7.61 compte tenu
qu'en debbug ou avec un point d'arrêt tout va bien, je placerais 3
msgbox au début de la fonction, du style :
Public Function ALLEGEMENT_CHAUFFEUR(Brut, Horaire,
gmr2)
MsgBox (Brut)
MsgBox (Horaire)
MsgBox (gmr2)
Dim coefficient................. etc

4) J'essairais sans la table des taux pour voir si le 7.18 réapparait....ou
les 196 heures (va savoir!)

Sinon, faut vraiment entrer dans le soft pour trouver le BUG

Bon courage

Patrick
Avatar
Serge Deimerly
Patrick a utilisé son clavier pour écrire :
Re.... serge,

je viens de tester ta fonction dans une base , celà fonctionne....
Effectivement les 94.40 obtenus correspondent à la GMR de 7.18
.............. OU ............ à 196 heures

je suis tout aussi perplexe

En amont du lancement de la fonction, le paramètre GMR qui est passé doit de
manière
aléatoire être de 7.18 au lieu de 7.61.....ou 196 heures plafonnées au lieu
des 208 ? reste à trouver "venant d'ou",
access ne peut pas inventer une valeur sortie d'un chapeau

Moi je vérifierais
1) si d'aventure cette GMR n'existe pas en tant que variable
publique....figée à 7.18 par exemple
2) n'as tu pas une table "SMIC" ou trainerais ce 7.18 ? (ancienne valeur
horaire du SMIC) qui parasiterais
3) pour lever le doute entre 196 heures au lieu de 208 et 7.18 au lieu de
7.61 compte tenu
qu'en debbug ou avec un point d'arrêt tout va bien, je placerais 3
msgbox au début de la fonction, du style :
Public Function ALLEGEMENT_CHAUFFEUR(Brut, Horaire,
gmr2)
MsgBox (Brut)
MsgBox (Horaire)
MsgBox (gmr2)
Dim coefficient................. etc

4) J'essairais sans la table des taux pour voir si le 7.18 réapparait....ou
les 196 heures (va savoir!)

Sinon, faut vraiment entrer dans le soft pour trouver le BUG

Bon courage

Patrick


Merci pour ta rapide réponse, et tes encouragements!!

je pense que j' ai trouvé
====================================================================== Access n'aime pas beaucoup que je travaille directement sur d!Patron
voila une partie du programme

Set d = qd.OpenRecordset()


'Boucle de lecture des lignes de paye
Do Until d.EOF

d.Edit
.
. (partie du programme)
.

Case "ALLEGEMENT CHAUFFEUR"
If d!Patron = 0 Then

d!patron = (RoundCC(ALLEGEMENT_CHAUFFEUR(Brut,
Horaire2, GMR_CHAUFFEUR))) * -1

End If


.
. (partie du programme)
.
d.Update


========================================
en passant par une zone intermédiaire XXX tout rentre dans l'ordre
XXX = (RoundCC(ALLEGEMENT_CHAUFFEUR(Brut, Horaire2, GMR_CHAUFFEUR))) *
-1
d!patron = XXX

merci encore!!

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com