Datums groeperen per week

Status
Niet open voor verdere reacties.

Kickkick

Gebruiker
Lid geworden
24 feb 2012
Berichten
12
Beste accessers,

In een tabel houd ik facturen bij. Uiteraard hebben deze facturen een datum en nu wil ik deze datum m.b.v. een Query later groeperen per week om zo de week totalen te kunnen krijgen. Bij een Query opbouw is het per maand en per jaar heel eenvoudig, maar hoe doe ik dit per week?

Hoop dat iemand het verlossende antwoord heeft voor mij.

Alvast bedankt!
 
Met een simpele functie (die je in een willekeurige module moet zetten) kun je een weeknummer berekenen op basis van een datumveld.

Code:
Public Function IsoWeekNummer(d1 As Date) As Integer
Dim d2 As Long
   
   d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
   IsoWeekNummer = Int((d1 - d2 + Weekday(d2) + 5) / 7)

End Function
In een query gebruik je hem dan zo:
Weeknummer:=IsoWeekNummer([Besteldatum])
En op dat nieuwe veld kun je dan weer groeperen.
 
Ik heb nu de volgende toegepast! Werkt super! Thnx

Eerst de week berekend: Week: DatePart("ww",[Date],1)

Daarna de volgende 2 query berekeningen:
4 weekly period: Int((([Week]-1)/4)+1)

Weeks: Partition([Week],1,52,4)
 
En waarom gebruik je een formule die soms een verkeerde week berekent? Ik zou nooit met Datepart werken, omdat die verkeerde weken kan berekenen. De functie IsoWeekNummer doet dat 100% gegarandeerd niet.
 
Na enkele testen leek het betrouwbaar te zijn, maar dat is dan blijkbaar niet zo..
 
Heb me naar aanleiding van je vorige reactie nog eens gebogen over jouw functie, maar als ik deze in een module zet en gebruik in een Query krijg ik de melding: ! De naam is niet eenduidig. in query-expressie IsoWeekNummer([Consumption]![Date].

Alles gecheckt, maar het lijkt toch gewoon te kloppen.
 
Ik heb 'm in je andere database gezet, en daar doet-ie het prima: Week: IsoWeekNummer([Date]). Wel goed gebruiken dus ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan