fonction de date

Le
Jacques
Bonsoir 3stone,

Cette fonction que tu m'avais communiqué sur un ancien post, indiquer
le millésime d’une saison
(de 01/09/2008 au 31/08/2009 = 2009), mais je ne sais pas pourquoi
elle ne fonctionne plus.

Y-a-t’il une erreur ? Sinon quelles pourraient être les raisons ?

Function fnMillesime() As Integer
Dim T As Integer
T = DatePart("q", DateAdd("m", 1, Date), 2, 2)
fnMillesime = Year(Date) + Abs(T = 4)
End Function


Merci de ton aide.


Salutation.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #18143541
Salut,

"Jacques"
Bonsoir 3stone,


Tu as du bol que je passe ;-)
Remarque, en dehors d'une conversation,
on s'adresse à tous les intervenants...




Cette fonction que tu m'avais communiqué sur un ancien post, indiquer
le millésime d’une saison
(de 01/09/2008 au 31/08/2009 = 2009), mais je ne sais pas pourquoi
elle ne fonctionne plus.

Y-a-t’il une erreur ? Sinon quelles pourraient être les raisons ?

Function fnMillesime() As Integer
Dim T As Integer
T = DatePart("q", DateAdd("m", 1, Date), 2, 2)
fnMillesime = Year(Date) + Abs(T = 4)
End Function



Tu as sûrement une référence manquante...
Alt + F11, Outils, Références

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Jacques
Le #18147201
On 15 déc, 11:57, "3stone"
Salut,

"Jacques"
Bonsoir 3stone,

        Tu as du bol que je passe ;-)
        Remarque, en dehors d'une conversation,
        on s'adresse à tous les intervenants...

Cette fonction que tu m'avais communiqué  sur un ancien post, indique r
le millésime d’une saison
(de 01/09/2008 au 31/08/2009  = 2009), mais je ne sais pas pourquoi
elle ne fonctionne plus.

Y-a-t’il une erreur ? Sinon quelles pourraient être les raisons ?

Function fnMillesime() As Integer
    Dim T As Integer
    T = DatePart("q", DateAdd("m", 1, Date), 2, 2)
    fnMillesime = Year(Date) + Abs(T = 4)
End Function

        Tu as sûrement une référence manquante...
        Alt + F11, Outils, Références

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)



Bonsoir 3stone,

C'est vrai je n'avais pas pensé à reprendre l'ancien post......

A-tu une idée de la dll manquante ?

Je me suis aperçue que la fonction ne marche pas uniquement pour le
mois de décembre (2008 à la place de 2009),
pour les autres mois c'est ok.

Une petite explication :

A quoi correspond le ,Date)2, 2) de la ligne suivante:

T = DatePart("q", DateAdd("m", 1, Date), 2, 2)

Salutations
3stone
Le #18148631
Salut,

"Jacques"

A-tu une idée de la dll manquante ?


Y a-t-il une référence marquée manquante ?

Si oui, décoche la et compile (Débogage, Compiler...)


Je me suis aperçue que la fonction ne marche pas uniquement pour le
mois de décembre (2008 à la place de 2009),
pour les autres mois c'est ok.


Heu ??


Une petite explication :

A quoi correspond le ,Date)2, 2) de la ligne suivante:

T = DatePart("q", DateAdd("m", 1, Date), 2, 2)


DateAdd("m", 1, Date)
renvoie la date actuelle + 1 mois


DatePart("q", LaDate, 2, 2)
renvoie le trimestre de LaDate en spécifiant que la
semaine commence le lundi et l'année par la première
semaine qui contient 4 jours...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Jacques
Le #18155641
On 15 déc, 21:30, "3stone"
Salut,

"Jacques"

A-tu une idée de la dll manquante ?

        Y a-t-il une référence marquée manquante ?

        Si oui, décoche la et compile (Débogage, Compiler...)

Je me suis aperçue que la fonction ne marche pas uniquement  pour le
mois de décembre (2008 à la place de 2009),
pour les autres mois c'est ok.

        Heu ??

Une petite explication :

A quoi correspond le ,Date)2, 2) de la ligne suivante:

T = DatePart("q", DateAdd("m", 1, Date), 2, 2)

        DateAdd("m", 1, Date)
        renvoie la date actuelle + 1 mois

        DatePart("q", LaDate, 2, 2)
        renvoie le trimestre de LaDate en spécifiant que la
        semaine commence le lundi et l'année par la première
        semaine qui contient 4 jours...

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)



Bonjour 3stone,

Merci pour tes explications.

J’ai refait des tests mois par mois et j’obtiens les résultats
suivants :

SAISON DU 31/08/2008 Au 01/09/2009 (Millésime 2009)

15/08/2008 = 2008
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)

15/09/2008, 15/10/2008,15/11/2008 = 2009
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=1)

15/12/2008 = 2008
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)

15/01/2009, au,15/08/2009 = 2009
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)

SAISON DU 31/08/2009 Au 01/09/2010 (Millésime 2010)

15/08/2009 = 2009
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)

15/09/2009, 15/10/2009,15/11/2009 = 2010
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=1)

15/12/2009 = 2009
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)

15/01/2010, au,15/08/2010 = 2010
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)


Par contre en reprenant l'ancien post Pbserv avait donné la solution
suivante :
fnMillesime = Year(DateAdd("m", -8, dMaDate))
qui ne fonctionne pas,

mais en remplaçant le -8 par 4 cela fonctionne correctement et pour
tous les mois.
fnMillesime = Year(DateAdd("m", 4, Date))


A+

Salutations.
Michel__D
Le #18155771
Bonjour,

Essaye avec ce code

Function fnMillesime() As Integer
Dim T As Integer
T = Year( Date)
If Month(Date) > 8 Then T = T + 1
fnMillesime = T
End Function


"Jacques" On 15 déc, 21:30, "3stone"
Salut,

"Jacques"

A-tu une idée de la dll manquante ?

Y a-t-il une référence marquée manquante ?

Si oui, décoche la et compile (Débogage, Compiler...)

Je me suis aperçue que la fonction ne marche pas uniquement pour le
mois de décembre (2008 à la place de 2009),
pour les autres mois c'est ok.

Heu ??

Une petite explication :

A quoi correspond le ,Date)2, 2) de la ligne suivante:

T = DatePart("q", DateAdd("m", 1, Date), 2, 2)

DateAdd("m", 1, Date)
renvoie la date actuelle + 1 mois

DatePart("q", LaDate, 2, 2)
renvoie le trimestre de LaDate en spécifiant que la
semaine commence le lundi et l'année par la première
semaine qui contient 4 jours...

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)



Bonjour 3stone,

Merci pour tes explications.

J’ai refait des tests mois par mois et j’obtiens les résultats
suivants :

SAISON DU 31/08/2008 Au 01/09/2009 (Millésime 2009)

15/08/2008 = 2008
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)

15/09/2008, 15/10/2008,15/11/2008 = 2009
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=1)

15/12/2008 = 2008
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)

15/01/2009, au,15/08/2009 = 2009
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)

SAISON DU 31/08/2009 Au 01/09/2010 (Millésime 2010)

15/08/2009 = 2009
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)

15/09/2009, 15/10/2009,15/11/2009 = 2010
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=1)

15/12/2009 = 2009
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)

15/01/2010, au,15/08/2010 = 2010
(En pointant la souris sur Abs j’obtiens Abs(T = 4)=0)


Par contre en reprenant l'ancien post Pbserv avait donné la solution
suivante :
fnMillesime = Year(DateAdd("m", -8, dMaDate))
qui ne fonctionne pas,

mais en remplaçant le -8 par 4 cela fonctionne correctement et pour
tous les mois.
fnMillesime = Year(DateAdd("m", 4, Date))


A+

Salutations.
3stone
Le #18155921
Salut,

"Jacques"
[...]
mais en remplaçant le -8 par 4 cela fonctionne correctement et pour
tous les mois.
fnMillesime = Year(DateAdd("m", 4, Date))
_____


La fonction (celle que tu as affichée en début de ce fil) fonctionne...

Tu disais que "elle ne fonctionne plus" ;-)
D'où la piste de la référence manquante.

Par contre, je ne me souviens absolument pas du résultat qu'était
censée cracher cette fonction :o)

Voilà ce qui arrive lorsque l'on n'est plus dans le fil ou que l'on
ne resitue pas les choses ;-))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Jacques
Le #18171821
On 16 déc, 17:05, "3stone"
Salut,

"Jacques"
[...]
mais en remplaçant le -8 par 4 cela fonctionne correctement et pour
tous les mois.
    fnMillesime = Year(DateAdd("m", 4, Date))
_____

La fonction (celle que tu as affichée en début de ce fil) fonctionne. ..

Tu disais que "elle ne fonctionne plus"  ;-)
D'où la piste de la référence manquante.

Par contre, je ne me souviens absolument pas du résultat qu'était
censée cracher cette fonction :o)

Voilà ce qui arrive lorsque l'on n'est plus dans le fil ou que l'on
ne resitue pas les choses ;-))

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)



Bonjour 3stones,

La fonction que que j'ai affichée au début du fil

Function fnMillesime() As Integer
Dim T As Integer
T = DatePart("q", DateAdd("m", 1, Date), 2, 2)
fnMillesime = Year(Date) + Abs(T = 4)
End Function

Fonctionne pour tous les mois sauf décembre (L'année derniére je ne
m'en suis pas aperçue car je n'avais aucune donnée a saisir sur
décembre 2007).

Le résultat que doit fournir le fonction est le suivant:

Du 01/09/2008 au 31/08/2009 le millesime doit être 2009.

Salutations.
Michel__D
Le #18176941
Bonjour,

Le comportement paraît normal car la ligne suivante :

T = DatePart("q", DateAdd("m", 1, Date), 2, 2)

Commence par ajouter 1 mois à la date courante (ce qui exclus donc décembre)

a = DateAdd("m", 1, Date)

Puis calcule le trimestre du résultat précédent.

T = DatePart("q", a, 2, 2)

Maintenant vu le souhait exprimé tu pourrais utiliser le code suivant :

Function fnMillesime() As Integer
fnMillesime = Year(Date) + Abs( Sgn( Month(Date) > 8 ))
End Function


"Jacques" On 16 déc, 17:05, "3stone"
Salut,

"Jacques"
[...]
mais en remplaçant le -8 par 4 cela fonctionne correctement et pour
tous les mois.
fnMillesime = Year(DateAdd("m", 4, Date))
_____

La fonction (celle que tu as affichée en début de ce fil) fonctionne...

Tu disais que "elle ne fonctionne plus" ;-)
D'où la piste de la référence manquante.

Par contre, je ne me souviens absolument pas du résultat qu'était
censée cracher cette fonction :o)

Voilà ce qui arrive lorsque l'on n'est plus dans le fil ou que l'on
ne resitue pas les choses ;-))

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)



Bonjour 3stones,

La fonction que que j'ai affichée au début du fil

Function fnMillesime() As Integer
Dim T As Integer
T = DatePart("q", DateAdd("m", 1, Date), 2, 2)
fnMillesime = Year(Date) + Abs(T = 4)
End Function

Fonctionne pour tous les mois sauf décembre (L'année derniére je ne
m'en suis pas aperçue car je n'avais aucune donnée a saisir sur
décembre 2007).

Le résultat que doit fournir le fonction est le suivant:

Du 01/09/2008 au 31/08/2009 le millesime doit être 2009.

Salutations.
Publicité
Poster une réponse
Anonyme