Mark A Matte
markamatte at hotmail.com
Thu May 24 10:17:25 CDT 2007
Thanks Gustav,
I will definetly keep this in mind for larger projects...
For this instance...I just needed to group by week for the last 6
months...and a single day was 'biting' me. I almost just changed the
date...lol...but my 'data integrity morals' said that it probably wasn't the
best thing to do.
Thanks,
Mark A. Matte
>From: "Gustav Brock" <Gustav at cactus.dk>
>Reply-To: Access Developers discussion and problem
>solving<accessd at databaseadvisors.com>
>To: <accessd at databaseadvisors.com>
>Subject: Re: [AccessD] DatePart "WW"
>Date: Thu, 24 May 2007 16:44:23 +0200
>
>Hi Mark
>
>If you are looking for ISO week numbers, use these constants:
>
> bytWeek = DatePart("ww", datDate, vbMonday, vbFirstFourDays)
>
>However, DatePart has always - since Access 1.0 - been buggy for week
>number 53.
>Thus, for serious business use, use a function like this which I have
>posted many times:
>
>Public Function ISO_WeekNumber( _
> ByVal datDate As Date) _
> As Byte
>
>' Calculates and returns week number for date datDate according to the ISO
>8601:1988 standard.
>' 1998-2000, Gustav Brock, Cactus Data ApS, CPH.
>' May be freely used and distributed.
>
> Const cbytFirstWeekOfAnyYear As Byte = 1
> Const cbytLastWeekOfLeapYear As Byte = 53
>
> Dim bytWeek As Byte
> Dim bytISOThursday As Byte
> Dim datLastDayOfYear As Date
>
> bytWeek = DatePart("ww", datDate, vbMonday, vbFirstFourDays)
>
> If bytWeek = cbytLastWeekOfLeapYear Then
> bytISOThursday = WeekDay(vbThursday, vbMonday)
> datLastDayOfYear = DateSerial(Year(datDate), 12, 31)
> If WeekDay(datLastDayOfYear, vbMonday) >= bytISOThursday Then
> ' OK, week count of 53 is caused by leap year.
> Else
> ' Correct for Access97/2000 bug.
> bytWeek = cbytFirstWeekOfAnyYear
> End If
> End If
>
> ISO_WeekNumber = bytWeek
>
>End Function
>
>/gustav
>
> >>> markamatte at hotmail.com 24-05-2007 16:14 >>>
>Hello All,
>
>I'm using datepart to get the week. 12/31/2006 I am having an issue...No
>matter what optional constant I use or change...I get Day1 of week 53...
>and
>1/1/2007 shows as Day2 of week 1. How do I get Day1 of Week1?
>
>Thanks,
>
>Mark A. Matte
>
>
>
>--
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com
_________________________________________________________________
More photos, more messages, more storageget 2GB with Windows Live Hotmail.
http://imagine-windowslive.com/hotmail/?locale=en-us&ocid=TXT_TAGHM_migration_HM_mini_2G_0507