Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calculs avec Champs 0 ou null

6 réponses
Avatar
Luis
Bonjour,

A l'ouverture d'un formulaire j'ai ce calcul:
Me.COEFFICIENT = Me.TARIF_HEURE / (Me.SALAIRE_DE_BASE + Me.VACANCES +
Me.Moisgratification + Me.JOURS_FERIES + Me.FRAIS1)

Et je ne me rappele plus comment calculer lorsqu'un champ ou tous sont "0"
ou ""

Merci de me rafraichir la mémoire.
Luis

6 réponses

Avatar
Jacques
Bonjour,

Voir la fonction IsNull

Jacques

"Luis" a écrit dans le message de
news:
Bonjour,

A l'ouverture d'un formulaire j'ai ce calcul:
Me.COEFFICIENT = Me.TARIF_HEURE / (Me.SALAIRE_DE_BASE + Me.VACANCES +
Me.Moisgratification + Me.JOURS_FERIES + Me.FRAIS1)

Et je ne me rappele plus comment calculer lorsqu'un champ ou tous sont "0"
ou ""

Merci de me rafraichir la mémoire.
Luis


Avatar
Luis
Re-bonjour,

J'ai mis:

Private Sub Form_Current()

Me.COEFFICIENT = Nz(Me.TARIF_HEURE, 0) / (Nz(Me.SALAIRE_DE_BASE, 0) +
Nz(Me.VACANCES, 0) + Nz(Me.Moisgratification, 0) + Nz(Me.JOURS_FERIES, 0) +
Nz(Me.FRAIS1, 0))

Mais j'ai toujours un message d'erreur.
Luis


Bonjour,

Voir la fonction IsNull

Jacques

"Luis" a écrit dans le message de
news:
Bonjour,

A l'ouverture d'un formulaire j'ai ce calcul:
Me.COEFFICIENT = Me.TARIF_HEURE / (Me.SALAIRE_DE_BASE + Me.VACANCES +
Me.Moisgratification + Me.JOURS_FERIES + Me.FRAIS1)

Et je ne me rappele plus comment calculer lorsqu'un champ ou tous sont "0"
ou ""

Merci de me rafraichir la mémoire.
Luis







Avatar
Eric
Bonjour,

Attention, il ne faut pas que
(Nz(Me.SALAIRE_DE_BASE, 0) + Nz(Me.VACANCES, 0) +
Nz(Me.Moisgratification, 0) + Nz(Me.JOURS_FERIES, 0) + Nz(Me.FRAIS1, 0))
retourne 0 car la division est impossible.
Tu dois donc faire un test sur le diviseur et s'il n'est pas nul faire
la division et affecter le résultat à Me.Coefficient
Re-bonjour,

J'ai mis:

Private Sub Form_Current()

Me.COEFFICIENT = Nz(Me.TARIF_HEURE, 0) / (Nz(Me.SALAIRE_DE_BASE, 0) +
Nz(Me.VACANCES, 0) + Nz(Me.Moisgratification, 0) + Nz(Me.JOURS_FERIES, 0) +
Nz(Me.FRAIS1, 0))

Mais j'ai toujours un message d'erreur.
Luis


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Luis
Bonjour Eric,

Je teste comme ça, mais j'ai toujours une erreur:
If IsNull(Me.TOTAL_jf) Then
Exit Sub
Else
Me.COEFFICIENT = Nz(Me.TARIF_HEURE, 0) / (Nz(Me.SALAIRE_DE_BASE, 0) +
Nz(Me.VACANCES, 0) + Nz(Me.Moisgratification, 0) + Nz(Me.JOURS_FERIES, 0) +
Nz(Me.FRAIS1, 0))

End If

Le 'TOTAL_jf' est l'addition de 'Me.SALAIRE_DE_BASE + Me.VACANCES +
Me.Moisgratification + Me.JOURS_FERIES + Me.FRAIS1'

Luis

Bonjour,

Attention, il ne faut pas que
(Nz(Me.SALAIRE_DE_BASE, 0) + Nz(Me.VACANCES, 0) +
Nz(Me.Moisgratification, 0) + Nz(Me.JOURS_FERIES, 0) + Nz(Me.FRAIS1, 0))
retourne 0 car la division est impossible.
Tu dois donc faire un test sur le diviseur et s'il n'est pas nul faire
la division et affecter le résultat à Me.Coefficient
Re-bonjour,

J'ai mis:

Private Sub Form_Current()

Me.COEFFICIENT = Nz(Me.TARIF_HEURE, 0) / (Nz(Me.SALAIRE_DE_BASE, 0) +
Nz(Me.VACANCES, 0) + Nz(Me.Moisgratification, 0) + Nz(Me.JOURS_FERIES, 0) +
Nz(Me.FRAIS1, 0))

Mais j'ai toujours un message d'erreur.
Luis


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
Quel message d'erreur as-tu ? Sur quelle ligne ?
Pourquoi ne pas faire :

Me.Total_jf=Nz(Me.SALAIRE_DE_BASE, 0) + Nz(Me.VACANCES, 0) +
Nz(Me.Moisgratification, 0) + Nz(Me.JOURS_FERIES, 0) + Nz(Me.FRAIS1, 0)

If Me.Total_jf >0 then
Me.COEFFICIENT = Nz(Me.TARIF_HEURE, 0) /Me.Total_jf
End If

Ce qui éviterait de faire 2 fois le calcul de la totalisation.

Bonjour Eric,

Je teste comme ça, mais j'ai toujours une erreur:
If IsNull(Me.TOTAL_jf) Then
Exit Sub
Else
Me.COEFFICIENT = Nz(Me.TARIF_HEURE, 0) / (Nz(Me.SALAIRE_DE_BASE, 0) +
Nz(Me.VACANCES, 0) + Nz(Me.Moisgratification, 0) + Nz(Me.JOURS_FERIES, 0) +
Nz(Me.FRAIS1, 0))

End If

Le 'TOTAL_jf' est l'addition de 'Me.SALAIRE_DE_BASE + Me.VACANCES +
Me.Moisgratification + Me.JOURS_FERIES + Me.FRAIS1'

Luis


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Marie-Claire
Ok, ça marche.
Un millon de mercis
--
Marie-Claire



Quel message d'erreur as-tu ? Sur quelle ligne ?
Pourquoi ne pas faire :

Me.Total_jf=Nz(Me.SALAIRE_DE_BASE, 0) + Nz(Me.VACANCES, 0) +
Nz(Me.Moisgratification, 0) + Nz(Me.JOURS_FERIES, 0) + Nz(Me.FRAIS1, 0)

If Me.Total_jf >0 then
Me.COEFFICIENT = Nz(Me.TARIF_HEURE, 0) /Me.Total_jf
End If

Ce qui éviterait de faire 2 fois le calcul de la totalisation.

Bonjour Eric,

Je teste comme ça, mais j'ai toujours une erreur:
If IsNull(Me.TOTAL_jf) Then
Exit Sub
Else
Me.COEFFICIENT = Nz(Me.TARIF_HEURE, 0) / (Nz(Me.SALAIRE_DE_BASE, 0) +
Nz(Me.VACANCES, 0) + Nz(Me.Moisgratification, 0) + Nz(Me.JOURS_FERIES, 0) +
Nz(Me.FRAIS1, 0))

End If

Le 'TOTAL_jf' est l'addition de 'Me.SALAIRE_DE_BASE + Me.VACANCES +
Me.Moisgratification + Me.JOURS_FERIES + Me.FRAIS1'

Luis


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr