Je suis confront=E9 =E0 un petit probl=E8me que je n'arrive pas=20
=E0 r=E9soudre seul.
Je cherche =E0 utiliser une fonction qui me d=E9termine les=20
jours ouvr=E9s entre 2 dates.
Tout va bien jusqu'=E0 ce que la fonction tombe sur une date=20
de fin vide... ma requ=EAte renvoie "#erreur"
J'ai bien regard=E9 la fonction et celle-ci test si ma date=20
de d=E9but ou de fin est "NULL".
Si vous pouviez m'aider =E0 r=E9soudre ce probl=E8me...D'avance=20
merci.
Copie de la fonction employ=E9e :
***********************************************************
Public Function NbOpenDay(dtDeb As Date, dtFin As Date) As=20
Integer
' Calculer le nombre de jours ouvrables entre deux dates
' Utilise la fonction JourF=E9ri=E9(dtDate As Date)
Dim dblDateDeb As Double
Dim dblDateFin As Double
Dim DateCourante As Date
Dim Resultat As Integer
If IsNull(dtDeb) Or IsNull(dtFin) Then
NbOpenDay =3D 0
Exit Function
ElseIf Not IsDate(dtDeb) =3D True Or Not IsDate(dtFin) =3D=20
True Then
NbOpenDay =3D 0
Exit Function
ElseIf dtDeb > dtFin Then
Dim dhTemp As Date
dhTemp =3D dtDeb
dtDeb =3D dtFin
dtFin =3D dhTemp
End If
Do Until dblDateDeb > dblDateFin
DateCourante =3D CDate(dblDateDeb)
If Weekday(DateCourante) <> 1 And _
Weekday(DateCourante) <> 7 And _
JourF=E9ri=E9(DateCourante) =3D False Then
Resultat =3D Resultat + 1
End If
dblDateDeb =3D dblDateDeb + 1
Loop
NbOpenDay =3D Resultat
End Function
***********************************************************
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jessy Sempere [MVP]
Bonjour
Et voilà tu me dis que mon code est faut... je boude... ;-)))))
Bon essais de remplacer la ligne de code :
If IsNull(dtDeb) Or IsNull(dtFin) Then
par :
If IsNull(dtDeb) Or IsNull(dtFin) _ Or IsEmpty(dtDeb) Or IsEmpty(dtFin) Then
Ca marche ???
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "jos" a écrit dans le message news: 1a64801c41e02$991d5220$ Bonjour à tous et à toutes,
Je suis confronté à un petit problème que je n'arrive pas à résoudre seul.
Je cherche à utiliser une fonction qui me détermine les jours ouvrés entre 2 dates. Tout va bien jusqu'à ce que la fonction tombe sur une date de fin vide... ma requête renvoie "#erreur" J'ai bien regardé la fonction et celle-ci test si ma date de début ou de fin est "NULL". Si vous pouviez m'aider à résoudre ce problème...D'avance merci.
Bonjour
Et voilà tu me dis que mon code est faut... je boude... ;-)))))
Bon essais de remplacer la ligne de code :
If IsNull(dtDeb) Or IsNull(dtFin) Then
par :
If IsNull(dtDeb) Or IsNull(dtFin) _
Or IsEmpty(dtDeb) Or IsEmpty(dtFin) Then
Ca marche ???
@+
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/
------------------------------------
"jos" <jo.sauvaget@arius.fr> a écrit dans le message news:
1a64801c41e02$991d5220$a501280a@phx.gbl...
Bonjour à tous et à toutes,
Je suis confronté à un petit problème que je n'arrive pas
à résoudre seul.
Je cherche à utiliser une fonction qui me détermine les
jours ouvrés entre 2 dates.
Tout va bien jusqu'à ce que la fonction tombe sur une date
de fin vide... ma requête renvoie "#erreur"
J'ai bien regardé la fonction et celle-ci test si ma date
de début ou de fin est "NULL".
Si vous pouviez m'aider à résoudre ce problème...D'avance
merci.
Et voilà tu me dis que mon code est faut... je boude... ;-)))))
Bon essais de remplacer la ligne de code :
If IsNull(dtDeb) Or IsNull(dtFin) Then
par :
If IsNull(dtDeb) Or IsNull(dtFin) _ Or IsEmpty(dtDeb) Or IsEmpty(dtFin) Then
Ca marche ???
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "jos" a écrit dans le message news: 1a64801c41e02$991d5220$ Bonjour à tous et à toutes,
Je suis confronté à un petit problème que je n'arrive pas à résoudre seul.
Je cherche à utiliser une fonction qui me détermine les jours ouvrés entre 2 dates. Tout va bien jusqu'à ce que la fonction tombe sur une date de fin vide... ma requête renvoie "#erreur" J'ai bien regardé la fonction et celle-ci test si ma date de début ou de fin est "NULL". Si vous pouviez m'aider à résoudre ce problème...D'avance merci.
www.eztree-msdn.com \(Laurent Jordi\)
Salut,
Le seul format de données qui peut être null est le variant.
Public Function NbOpenDay(dtDeb, dtFin) As Integer if isnull(dtDeb) then if isnull(dtFin) then ... else ... end if else if isnull(dtFin) then ... else ... end if end if ...
@+
LJ www.eztree-msdn.com
"jos" a écrit dans le message de news:1a64801c41e02$991d5220$ Bonjour à tous et à toutes,
Je suis confronté à un petit problème que je n'arrive pas à résoudre seul.
Je cherche à utiliser une fonction qui me détermine les jours ouvrés entre 2 dates. Tout va bien jusqu'à ce que la fonction tombe sur une date de fin vide... ma requête renvoie "#erreur" J'ai bien regardé la fonction et celle-ci test si ma date de début ou de fin est "NULL". Si vous pouviez m'aider à résoudre ce problème...D'avance merci.
Copie de la fonction employée : *********************************************************** Public Function NbOpenDay(dtDeb As Date, dtFin As Date) As Integer ' Calculer le nombre de jours ouvrables entre deux dates ' Utilise la fonction JourFérié(dtDate As Date)
Dim dblDateDeb As Double Dim dblDateFin As Double Dim DateCourante As Date Dim Resultat As Integer
If IsNull(dtDeb) Or IsNull(dtFin) Then NbOpenDay = 0 Exit Function ElseIf Not IsDate(dtDeb) = True Or Not IsDate(dtFin) True Then NbOpenDay = 0 Exit Function ElseIf dtDeb > dtFin Then Dim dhTemp As Date dhTemp = dtDeb dtDeb = dtFin dtFin = dhTemp End If
dblDateDeb = CDbl(dtDeb) dblDateFin = CDbl(dtFin)
Do Until dblDateDeb > dblDateFin DateCourante = CDate(dblDateDeb) If Weekday(DateCourante) <> 1 And _ Weekday(DateCourante) <> 7 And _ JourFérié(DateCourante) = False Then Resultat = Resultat + 1 End If dblDateDeb = dblDateDeb + 1 Loop NbOpenDay = Resultat
End Function ***********************************************************
Salut,
Le seul format de données qui peut être null est le variant.
Public Function NbOpenDay(dtDeb, dtFin) As Integer
if isnull(dtDeb) then
if isnull(dtFin) then
...
else
...
end if
else
if isnull(dtFin) then
...
else
...
end if
end if
...
@+
LJ
www.eztree-msdn.com
"jos" <jo.sauvaget@arius.fr> a écrit dans le message de
news:1a64801c41e02$991d5220$a501280a@phx.gbl...
Bonjour à tous et à toutes,
Je suis confronté à un petit problème que je n'arrive pas
à résoudre seul.
Je cherche à utiliser une fonction qui me détermine les
jours ouvrés entre 2 dates.
Tout va bien jusqu'à ce que la fonction tombe sur une date
de fin vide... ma requête renvoie "#erreur"
J'ai bien regardé la fonction et celle-ci test si ma date
de début ou de fin est "NULL".
Si vous pouviez m'aider à résoudre ce problème...D'avance
merci.
Copie de la fonction employée :
***********************************************************
Public Function NbOpenDay(dtDeb As Date, dtFin As Date) As
Integer
' Calculer le nombre de jours ouvrables entre deux dates
' Utilise la fonction JourFérié(dtDate As Date)
Dim dblDateDeb As Double
Dim dblDateFin As Double
Dim DateCourante As Date
Dim Resultat As Integer
If IsNull(dtDeb) Or IsNull(dtFin) Then
NbOpenDay = 0
Exit Function
ElseIf Not IsDate(dtDeb) = True Or Not IsDate(dtFin) True Then
NbOpenDay = 0
Exit Function
ElseIf dtDeb > dtFin Then
Dim dhTemp As Date
dhTemp = dtDeb
dtDeb = dtFin
dtFin = dhTemp
End If
dblDateDeb = CDbl(dtDeb)
dblDateFin = CDbl(dtFin)
Do Until dblDateDeb > dblDateFin
DateCourante = CDate(dblDateDeb)
If Weekday(DateCourante) <> 1 And _
Weekday(DateCourante) <> 7 And _
JourFérié(DateCourante) = False Then
Resultat = Resultat + 1
End If
dblDateDeb = dblDateDeb + 1
Loop
NbOpenDay = Resultat
End Function
***********************************************************
Le seul format de données qui peut être null est le variant.
Public Function NbOpenDay(dtDeb, dtFin) As Integer if isnull(dtDeb) then if isnull(dtFin) then ... else ... end if else if isnull(dtFin) then ... else ... end if end if ...
@+
LJ www.eztree-msdn.com
"jos" a écrit dans le message de news:1a64801c41e02$991d5220$ Bonjour à tous et à toutes,
Je suis confronté à un petit problème que je n'arrive pas à résoudre seul.
Je cherche à utiliser une fonction qui me détermine les jours ouvrés entre 2 dates. Tout va bien jusqu'à ce que la fonction tombe sur une date de fin vide... ma requête renvoie "#erreur" J'ai bien regardé la fonction et celle-ci test si ma date de début ou de fin est "NULL". Si vous pouviez m'aider à résoudre ce problème...D'avance merci.
Copie de la fonction employée : *********************************************************** Public Function NbOpenDay(dtDeb As Date, dtFin As Date) As Integer ' Calculer le nombre de jours ouvrables entre deux dates ' Utilise la fonction JourFérié(dtDate As Date)
Dim dblDateDeb As Double Dim dblDateFin As Double Dim DateCourante As Date Dim Resultat As Integer
If IsNull(dtDeb) Or IsNull(dtFin) Then NbOpenDay = 0 Exit Function ElseIf Not IsDate(dtDeb) = True Or Not IsDate(dtFin) True Then NbOpenDay = 0 Exit Function ElseIf dtDeb > dtFin Then Dim dhTemp As Date dhTemp = dtDeb dtDeb = dtFin dtFin = dhTemp End If
dblDateDeb = CDbl(dtDeb) dblDateFin = CDbl(dtFin)
Do Until dblDateDeb > dblDateFin DateCourante = CDate(dblDateDeb) If Weekday(DateCourante) <> 1 And _ Weekday(DateCourante) <> 7 And _ JourFérié(DateCourante) = False Then Resultat = Resultat + 1 End If dblDateDeb = dblDateDeb + 1 Loop NbOpenDay = Resultat
End Function ***********************************************************