OVH Cloud OVH Cloud

Fonction No deSemaine et #Erreur#

7 réponses
Avatar
Ayrton [ASC]
Bonsoir à tous,

J'utilise depuis un bon moment la fonction de 3stone ( No Semaine ) qui
fonctionne très bien mais j'ai un petit truc qui m'agace ; en effet,
cette fonction est la source de mon controle ([DateCommande]) et tant
que cleui-ci n'est pas rempli, le controle devant m'afficher le No de
semaine en fonction de la date rentrée m'affiche : #Erreur# ; dès qu'une
date est rentrée, plus de problème, le No de semaine s'affiche ; sur le
point de vue du fonctionnement ce n'est pas grave mais à la longue, ça
m'embête un peu ce #erreur "; j'ai bie nessayé de mettre sur lévènement
BeforeUpdate de ce controle :
If Not IsNull ([DateCommande]) Then
fStrSemaine([DateCmmande])
End if

mais ça ne change rien ;-(
J'aurais donc besoin d'un petit coup de main pour m'éclairer ;-)

Meric à vous tous
Bonne fin de soirée

Cordialement

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm

7 réponses

Avatar
Bonjour

Remplace juste la ligne
Function fnWeek(MyDate As Date) As String
par
Function fnWeek(MyDate As Variant) As String

La valeur null sera alors interprêtée par la ligne If Not IsDate(MyDate) Then
ce qui te retournera "" au lieu d'une erreur.

a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------


"Ayrton [ASC]" a écrit dans le message de news:
Bonsoir à tous,

J'utilise depuis un bon moment la fonction de 3stone ( No Semaine ) qui fonctionne très bien mais j'ai un petit truc qui m'agace ;
en effet, cette fonction est la source de mon controle ([DateCommande]) et tant que cleui-ci n'est pas rempli, le controle devant
m'afficher le No de semaine en fonction de la date rentrée m'affiche : #Erreur# ; dès qu'une date est rentrée, plus de problème,
le No de semaine s'affiche ; sur le point de vue du fonctionnement ce n'est pas grave mais à la longue, ça m'embête un peu ce
#erreur "; j'ai bie nessayé de mettre sur lévènement BeforeUpdate de ce controle :
If Not IsNull ([DateCommande]) Then
fStrSemaine([DateCmmande])
End if

mais ça ne change rien ;-(
J'aurais donc besoin d'un petit coup de main pour m'éclairer ;-)

Meric à vous tous
Bonne fin de soirée

Cordialement

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm


Avatar
re

pour 3stone :
l'adresse du bug oleaut32.dll a changé : maintenant c'est http://support.microsoft.com/kb/200299/fr ;-)

a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------
Avatar
Ayrton [ASC]
Bonjour *Anor*
Dans ton message de newss440aa750$0$22242$
tu nous envoyais cette missive :-(*)
Bonjour


Bonjour,

Remplace juste la ligne
Function fnWeek(MyDate As Date) As String
par
Function fnWeek(MyDate As Variant) As String

La valeur null sera alors interprêtée par la ligne If Not
IsDate(MyDate) Then ce qui te retournera "" au lieu d'une erreur.


Merci beaucoup Anor ; ça fonctionne super bien ;-)
Bon dimanche

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm

Avatar
Ayrton [ASC]
Re Anor,

Je ne voudrais pas abuser de ta gentillesse, mais j'ai une autre
fonction qui retourne aussi le numéro de semaine et pour celle-ci ça ne
fonctionne pas ;-(
J'ai le message " Utilisation incorrecte de Null " et ces lignes
surlignées :
http://cjoint.com/?dfoe74NZXl

J'ai tout essayé mais rien n'y fait ; dans mon controle Date, sur
BeforeUpdate, j'ai bien mis : If Not IsNull([DateCommanbde]) Then......;
ensuite j'ai changé pour:
If Not isNull(LaDate) Then....

J'ai vérifié que je prenais bien le nom de mon controle mais topujours
sans résultat.....
Par contre, la solution que tu m'as donnée pour la fonction NoSemaine de
3stone fonctionne parfaiterment.......

Si à l'occasion tu as une petite idée.........

Merci

Cordialement

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
Avatar
Salut

tu as plusieurs possibilités :

si pour les dates Null tu veux retourner 0, conserver la fonction définie pour retourner des integer
mais isoler le traitement des dates null pour éviter toute erreur d'utilisation des Null par les fonctions
standard DateSerial ou Weekday :

Function WeekISO(Ladate As Variant) As Integer
If Not IsNull(Ladate) Then
WeekISO = Int((Ladate - (DateSerial(Year(Ladate - _
Weekday(Ladate - 1) + 4), 1, 3) - _
Weekday(DateSerial(Year(Ladate - _
Weekday(Ladate - 1) + 4), 1, 3))) + 5) / 7)
End If
End Function

Si pour les dates Null tu veux retourner Null, déclarer également la fonction en Variant
et intercepter les dates null comme plus haut :

Function WeekISO(Ladate As Variant) As Variant
If Not IsNull(Ladate) Then
WeekISO = Int((Ladate - (DateSerial(Year(Ladate - _
Weekday(Ladate - 1) + 4), 1, 3) - _
Weekday(DateSerial(Year(Ladate - _
Weekday(Ladate - 1) + 4), 1, 3))) + 5) / 7)
End If
End Function


Autre méthode, laisser se produire l'erreur d'interprétation de la date Null par weekday ou dateserial
et l'intercepter :

Function WeekISO(Ladate As Variant) As Variant
On Error GoTo weekiso_err
WeekISO = Int((Ladate - (DateSerial(Year(Ladate - _
Weekday(Ladate - 1) + 4), 1, 3) - _
Weekday(DateSerial(Year(Ladate - _
Weekday(Ladate - 1) + 4), 1, 3))) + 5) / 7)
Exit Function
weekiso_err:
WeekISO = Null
End Function

Voilà ;-)

a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------



"Ayrton [ASC]" a écrit dans le message de news:
Re Anor,

Je ne voudrais pas abuser de ta gentillesse, mais j'ai une autre fonction qui retourne aussi le numéro de semaine et pour celle-ci
ça ne fonctionne pas ;-(
J'ai le message " Utilisation incorrecte de Null " et ces lignes surlignées :
http://cjoint.com/?dfoe74NZXl

J'ai tout essayé mais rien n'y fait ; dans mon controle Date, sur BeforeUpdate, j'ai bien mis : If Not IsNull([DateCommanbde])
Then......; ensuite j'ai changé pour:
If Not isNull(LaDate) Then....

J'ai vérifié que je prenais bien le nom de mon controle mais topujours sans résultat.....
Par contre, la solution que tu m'as donnée pour la fonction NoSemaine de 3stone fonctionne parfaiterment.......

Si à l'occasion tu as une petite idée.........



Avatar
Ayrton [ASC]
Re Anor,

Merci beaucoup pour ton aide, pour les explications et pour ta
disponibilité.
c'est nickel ! ;-)

Bonne fin de soirée

--
@+
Ayrton
http://cerbermail.com/?ljOK1CRTMt
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Charte NG :
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
Avatar
3stone
Salut Arnaud,

<Anor>
| l'adresse du bug oleaut32.dll a changé


fait ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/