OVH Cloud OVH Cloud

Somme erronée dans un formulaire ou un état

2 réponses
Avatar
es_13
aBonjour,
J'ai crée 2 fonctions permettant de renvoyer un entier(de 0 à 2) en fonction de certains critères sur des dates. Jusque là, pas de soucis.
En revanche quand dans 1 formulaire ou 1 état je souhaite faire la somme de ces résultats, çà ne fonctionne pas et "#Erreur" apparait.
Pour + de clarté et probablement le repérage de mon erreur, voici mes fonctions:

Dim Sunset As Date, HDécol As Date, HATT As Date

Public Function VolEnSoiree(Sunset, HDécol, HATT) As Integer

If IsEmpty(HDécol) Or IsEmpty(HATT) Then
VolEnSoiree = 0

ElseIf HATT > Sunset And HATT <= DateAdd("n", 30, Sunset) Then
VolEnSoiree = 1

Else
VolEnSoiree = 0

End If

End Function

Public Function VolDeNuit(Sunset, HDécol, HATT) As Integer

If IsEmpty(HDécol) Or IsEmpty(HATT) Then
VolDeNuit = 0

ElseIf HDécol < #9:00:00 AM# And HATT >= DateAdd("n", 30, Sunset) Then
VolDeNuit = 2

ElseIf HDécol < #9:00:00 AM# Or HATT >= DateAdd("n", 30, Sunset) Then
VolDeNuit = 1

Else
VolDeNuit = 0

End If

End Function

==>> Les sommes que je veux faire sont simplement:
Somme([VolDeNuit]) & Somme([VolEnSoiree])

Merci d'avance pour votre aide

2 réponses

Avatar
Eric
Bonjour es_13,


Tes 2 fonctions doivent être affectées à des contrôles de formulaire ou
sont des champs calculés dans une requête.

Ex de champs calculés dans une requête:
Soir: VolEnSoiree([Heure1];[Heure2];[Heure3]) idem pour le vol de nuit
Nuit: VolDeNuit([Heure1];[Heure2];[Heure3])

A l'aide de cette requête tu construis ton formulaire et en pied tu mets
2 champs indépendants :TotalNuit, TotalSoiree pour lesquels la source
sera respectivement:
=somme([Nuit]) et = somme([Soiree)] ou globalement 1 champ Total dont la
source sera :=Somme([Nuit]) + somme([Soiree])

De même s'il s'agit de champs indépendants de formulaire (contrôles
TextBox)
Nom txtNuit, source: =VolDeNuit([Heure1];[Heure2];[Heure3])
Nom txtSoiree, source: : =VolEnSoiree([Heure1];[Heure2];[Heure3])
(tu peux masquer ces contrôles si tu le souhaites)

et en pied de formulaire,
TotalNuit: =Somme(VolDeNuit([Heure1];[Heure2];[Heure3]))
TotalSoiree: =Somme(VolEnSoiree([Heure1];[Heure2];[Heure3]))

Espérant que ca réponde à ta question

A+
Eric


"=?Utf-8?B?ZXNfMTM=?=" écrivait
news::

aBonjour,
J'ai crée 2 fonctions permettant de renvoyer un entier(de 0 à 2) en
fonction de certains critères sur des dates. Jusque là, pas de
soucis. En revanche quand dans 1 formulaire ou 1 état je souhaite
faire la somme de ces résultats, çà ne fonctionne pas et "#Erreur"
apparait. Pour + de clarté et probablement le repérage de mon
erreur, voici mes fonctions:

Dim Sunset As Date, HDécol As Date, HATT As Date

Public Function VolEnSoiree(Sunset, HDécol, HATT) As Integer

If IsEmpty(HDécol) Or IsEmpty(HATT) Then
VolEnSoiree = 0

ElseIf HATT > Sunset And HATT <= DateAdd("n", 30, Sunset) Then
VolEnSoiree = 1

Else
VolEnSoiree = 0

End If

End Function

Public Function VolDeNuit(Sunset, HDécol, HATT) As Integer

If IsEmpty(HDécol) Or IsEmpty(HATT) Then
VolDeNuit = 0

ElseIf HDécol < #9:00:00 AM# And HATT >= DateAdd("n", 30, Sunset)
Then
VolDeNuit = 2

ElseIf HDécol < #9:00:00 AM# Or HATT >= DateAdd("n", 30, Sunset)
Then
VolDeNuit = 1

Else
VolDeNuit = 0

End If

End Function

==>> Les sommes que je veux faire sont simplement:
Somme([VolDeNuit]) & Somme([VolEnSoiree])

Merci d'avance pour votre aide



Avatar
es_13
Merci bcp Eric, je m'étais "embrouillée les pinceaux" entre les noms des controles dans le formulaire et les noms donnés à mes expressions dans la requete de référence.
Mille mercis pour cette réponse rapide & éclairée. 1 regard extérieur est souvent bien nécessaire, surtout qd on se lance dans Access.
Cordialement, es_13