Salut !
Bon, ça fait +sieurs heures que je me casse la tête avec ce problème, et je
commence à chauffer...
Voici mon problème.
Je dois calculer le nombre de mois entre deux date, mais si le mois d'août
et compris dans la période, le décompter (la période peut aller, allez on va
dire 3 années maxi je pense).
Tout ça, je dois le vérifier dans une requête (plusieurs même, mais je
n'arrive pas à différencier tous les cas possibles à cause de cette
possibilité de multi année)
Quelqu'un a déjà solutionner ce genre de truc ?
Merci !
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://users.skynet.be/mpfa/ ------------------------------------ "3stone" a écrit dans le message news: OBO#
"Jessy Sempere [MVP]" [...] | par contre ça m'étonnait qu'aucun de vous ne soit intervenue plus tôt... ;-))
|
Ohhhhh qu'il est de mauvaise foi, le bougre ;-))))
Dans une fil du 9 mars 2004 (objet "#erreur" posté par "MAG")
PS: pas loin de chez moi, ils disent : "Wer nicht hören will, muss fühlen"
En reprenant les parties concernées... '----------------------------------------------------------------- Public Function NbOpenDay(dtDeb As Date, dtFin As Date) As Integer
If IsNull(dtDeb) Or IsNull(dtFin) Then NbOpenDay = 0 Exit Function ElseIf Not IsDate(dtDeb) = True Or Not IsDate(dtFin) = True Then '-----------------------------------------------------------------
Debug.Print NbOpenDay( Date() , Date()+100)
fonctionne très bien...
mais: Debug.Print NbOpenDay( Date() , Null )
donne une erreur parce que, dans la fonction de Jessy dtDeb et dtFin sont déclarés comme date... et n'accepterons que des dates (ou une valeur numérique). D'où la remarque de Laurent Jordi ;-)
Les tests qui suivent viennent... trop tard... l'erreur est là...
S'il existe une possibilité pour qu'un NULL soit transmis à la fonction, il faut déclarer dtDeb et dtFin comme Variant (et, c'est mon avis, non corriger cela *ailleurs* )
Public Function NbOpenDay(dtDeb As Variant, dtFin As Variant) As Interger
les tests servent... et tout ce passe bien!
<copy off>
Et voilà en plus il apporte des preuves... ;-))
HS : Au fait t'as reçu le mail ?
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"3stone" <spam@spam> a écrit dans le message news:
OBO#QwA9EHA.2156@TK2MSFTNGP10.phx.gbl...
"Jessy Sempere [MVP]"
[...]
| par contre ça m'étonnait qu'aucun de vous ne soit intervenue plus tôt...
;-))
|
Ohhhhh qu'il est de mauvaise foi, le bougre ;-))))
Dans une fil du 9 mars 2004 (objet "#erreur" posté par "MAG")
PS: pas loin de chez moi, ils disent : "Wer nicht hören will, muss fühlen"
En reprenant les parties concernées...
'-----------------------------------------------------------------
Public Function NbOpenDay(dtDeb As Date, dtFin As Date) As Integer
If IsNull(dtDeb) Or IsNull(dtFin) Then
NbOpenDay = 0
Exit Function
ElseIf Not IsDate(dtDeb) = True Or Not IsDate(dtFin) = True Then
'-----------------------------------------------------------------
Debug.Print NbOpenDay( Date() , Date()+100)
fonctionne très bien...
mais: Debug.Print NbOpenDay( Date() , Null )
donne une erreur parce que, dans la fonction de Jessy
dtDeb et dtFin sont déclarés comme date... et n'accepterons
que des dates (ou une valeur numérique).
D'où la remarque de Laurent Jordi ;-)
Les tests qui suivent viennent... trop tard... l'erreur est là...
S'il existe une possibilité pour qu'un NULL soit transmis à
la fonction, il faut déclarer dtDeb et dtFin comme Variant
(et, c'est mon avis, non corriger cela *ailleurs* )
Public Function NbOpenDay(dtDeb As Variant, dtFin As Variant) As Interger
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://users.skynet.be/mpfa/ ------------------------------------ "3stone" a écrit dans le message news: OBO#
"Jessy Sempere [MVP]" [...] | par contre ça m'étonnait qu'aucun de vous ne soit intervenue plus tôt... ;-))
|
Ohhhhh qu'il est de mauvaise foi, le bougre ;-))))
Dans une fil du 9 mars 2004 (objet "#erreur" posté par "MAG")
PS: pas loin de chez moi, ils disent : "Wer nicht hören will, muss fühlen"
En reprenant les parties concernées... '----------------------------------------------------------------- Public Function NbOpenDay(dtDeb As Date, dtFin As Date) As Integer
If IsNull(dtDeb) Or IsNull(dtFin) Then NbOpenDay = 0 Exit Function ElseIf Not IsDate(dtDeb) = True Or Not IsDate(dtFin) = True Then '-----------------------------------------------------------------
Debug.Print NbOpenDay( Date() , Date()+100)
fonctionne très bien...
mais: Debug.Print NbOpenDay( Date() , Null )
donne une erreur parce que, dans la fonction de Jessy dtDeb et dtFin sont déclarés comme date... et n'accepterons que des dates (ou une valeur numérique). D'où la remarque de Laurent Jordi ;-)
Les tests qui suivent viennent... trop tard... l'erreur est là...
S'il existe une possibilité pour qu'un NULL soit transmis à la fonction, il faut déclarer dtDeb et dtFin comme Variant (et, c'est mon avis, non corriger cela *ailleurs* )
Public Function NbOpenDay(dtDeb As Variant, dtFin As Variant) As Interger
les tests servent... et tout ce passe bien!
<copy off>
3stone
"Jessy Sempere [MVP]" | | HS : Au fait t'as reçu le mail ? |