Rechercher : dans
Par :

Pb n° semaine (date) access

Dernière réponse le 8 oct 2008 à 14:57:55 azerty, le 9 jan 2004 à 14:37:18 
 Signaler ce message aux modérateurs

Bonjour,

Je n'arrive pas à récupérer le bon numéro de semaine pour la date du 29/12/2003 : access donne la semaine 53 au lieu de 1.
Auriez-vous une solution à me proposer ?

Merci

2

mimine, le 9 jan 2004 à 14:41:42

Bah en recuperant le numero de la semaine (ici 53) tu fait modulo 52 non?

Répondre à mimine

3

azerty, le 9 jan 2004 à 14:49:25

Non en fait je dois utiliser la fonction datepart, afin de prendre en compte le premier jour de la semaine (vbfirstdayokweek).
Merci quand même

Répondre à azerty

4

blux, le 9 jan 2004 à 17:32:37

Salut,

en fait, quand tu cherches des numéros de semaine, il y a une valeur qu'il faut IMPERATIVEMENT renseigner dans ta fonction, c'est la constante firstweekofyear, elle indique comment ACCESS doit calculer la première semaine de l'année :

Est-ce celle qui contient le premier janvier ?
Est-ce celle qui est complète ?
Est-ce celle qui comprend au moins quatre jours ?

C'est un argument de la fonction DatePart (4ième paramètre), mais on n'y pense pas jusqu'à ce qu'on se plante en début (ou en fin) d'année car les données sont incorrectes... :-)

A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

5

azerty, le 13 jan 2004 à 17:27:51

Bonjour,

Merci pour la réponse.
J'ai déjà essayé tous les paramètres, et seule la date du 29/12/2003 pose problème ?
Est-ce lié à une année bissextile qui suit ?

Merci

Répondre à azerty

6

blux, le 14 jan 2004 à 09:41:22

Elle pose problème avec tous les paramètres ?
Etrange !

A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

7

Djool, le 14 jan 2004 à 09:50:42

Salut j'ai exactement le même problème.

Semaine: PartDate("ww";[datesaisie];2;2)

La date du 29/12 apparait en semaine 53.
c4est bizarre ce truc!!!

Répondre à Djool

10

azerty, le 15 jan 2004 à 10:02:20

Bonjour,

Avez-vous trouvé une solution ?

Merci.
Azerty

Répondre à azerty

8

blux, le 14 jan 2004 à 10:36:17

Ben non , c'est normal... C'est bien la 53ième semaine de l'année en cours...
Si tu mets PartDate("ww";[datesaisie]) alors tu auras 53 jusqu'au 31/12 et 1 à partir du 1er de l'an...

A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

9

azerty, le 15 jan 2004 à 10:01:35

Bonjour,

Pourriez-vous faire un essai, car en 2003 le 29/12/2003 et uniquement cette date crée une semaine 53, alors que les 30 et 31/12/2003 vont bien sur la semaine 1 de 2004 comme attendu ?

Merci.
Azerty

Répondre à azerty

11

blux, le 15 jan 2004 à 10:19:22

J'avais bien fait l'essai, avec la ligne sans les 3ième et 4ième param, et j'ai bien semaine 53 jusqu'au 31/12/2003 et semaine 1 à partir du 01/01/2004

A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

12

mobile75, le 15 jan 2004 à 13:36:15

Salut
je confirme les propos de Blux
dans une année il y a 53 semaines et non pas 52 car :
52 semaines de 7 jours = 364 j
> il manque 1j,25 ou 2j ( bissext ) pour completer l'année donc S53

dans ma boite meme les polytechniciens n'en demordaient pas , ils voulaient absolument 52s pour 1 année et quand tu fait des stats sur des semaines pleine de 7 j , la derneire semaine de l'année est forcement la 53 eme

prendre la solution de blux sur partdate... si on ne veut pas semaine complete de 7j

Répondre à mobile75

13

blux, le 15 jan 2004 à 14:21:11

dans ma boite meme les polytechniciens n'en demordaient pas
C'est vraiment pas un argument ! ;-)

A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

sof582, le 3 nov 2007 à 11:03:17

Chercher la fonction prédifini qui permet de convertir une date en jour de la semaine et le N° de la semaine dans une année dans access

Répondre à sof582

14

saab, le 8 nov 2007 à 10:53:02

Il n y a pas eu de rép pr cette dernière proposition :(

Répondre à saab

16

blux, le 8 nov 2007 à 11:21:20

Si c'est une proposition, alors elle n'appelle pas de réponse, mais si c'est une question elle appelle à plus de précision pour y répondre....

A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

17

 orwen, le 8 oct 2008 à 14:57:55

En faisant un petit tour sur vbfrance.com, je suis tombé sur ce code
Langage : VB6 , VBA
Date ajout : 04/01/2008
Posté par Renfield [Liste]

'# http://fr.wikipedia.org/wiki/ISO_8601#Num.C3.A9ro_de_semaine­
Public Function Week(ByVal vDate As Date) As Integer
Dim dThursday As Date
Dim dMonday As Date
Dim nResult As Single
   '# Calculer le jeudi de la même semaine que la date cherchée.
   '# On calculera le numéro de semaine de ce jeudi pour être sûr de compter dans la
   '# bonne année sans test particulier. (Ce jeudi peut tomber l'année précédente ou suivante,
   '# c'est tout l'intérêt.)
   dThursday = DateAdd("D", 4 - Weekday(vDate, vbMonday), vDate)
   
   '# On considère le 4 janvier de la même année que ce jeudi
   dMonday = DateSerial(Year(dThursday), 1, 4)
   
   '# On calcule le lundi de la même semaine que ce 4 janvier (identifiant ainsi le début du comptage;
   '# noter que ce lundi peut lui même tomber l'année encore avant: peu importe)
   dMonday = DateAdd("D", 1 - Weekday(dMonday, vbMonday), dMonday)
   '# On calcule le nombre de jours écoulés entre nos deux dates particulières (ce jeudi et ce lundi).
   '# On divise par 7 (arrondir à l'entier supérieur). On a le résultat voulu.
   nResult = Abs(DateDiff("D", dThursday, dMonday)) / 7
   If Fix(nResult) <> nResult Then
       Week = nResult + 1
   Else
       Week = nResult
   End If
End Function

Répondre à orwen
Collection CommentÇaMarche.net