Bestaat er een functie "Weeknummer" ? ( voor bijwerkquery )

Status
Niet open voor verdere reacties.

HHunnekens

Gebruiker
Lid geworden
16 apr 2013
Berichten
63
Goedemorgen,

Zou graag in een tabel middels een bijwerkquery een veld "weeknummer" willen gaan vullen met het weeknummer op basis van een datumveld van een andere tabel.

Echter, ik kan er (nog) geen functie in Access ontdekken.

Bestaat die functie wel ? Als (toch) niet, hoe kun je dat dat omzeilen ?

Alvast bij voorbaat heel hartelijk dank !

Mvg,

Hans Hunnekens
 
Een weeknummer is altijd te herleiden uit een datum, dus als je in die andere tabel een datumveld hebt, hoef je daar geen weeknummer in op te slaan. Dat is dan namelijk overbodig.
Dat gezegd hebbende: Access heeft geen aparte functie Weeknummer zoals Excel die nog wel heeft. Maar je kunt zelf een functie maken, of de ingebouwde functie DatePart gebruiken.

De functie is deze:

Code:
Public Function WeekNummer(d1 As Date) As Integer

   'Attributed to Daniel Maher
   Dim d2 As Long
   d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
   IsoWeekNummer = Int((d1 - d2 + Weekday(d2) + 5) / 7)

End Function

En als je Datepart gebruikt, ziet dat er zo uit:
Code:
Expr1: DatePart("ww";[DatumVeld];1;2)
De functie is nauwkeuriger dan DatePart, die niet met alle jaarovergangen goed omgaat.
 
Hallo,
Hartelijk dank voor het antwoord. E.e.a. werkt inderdaad goed.
Overigens kan het wel handig zijn zo'n weeknummer veld feitelijk (tijdelijk) toe te voegen, vind ik althans, voor kruistabelquery's.
Nogmaals hartelijk dank !
Mvg,
Hans Hunnekens
 
Klopt helemaal, in queries is een weeknummer prima te gebruiken. Hanteer zoveel mogelijk de regel dat gegevens die je kunt berekenen in queries worden berekend, en niet opgeslagen in tabellen. Daarmee hou je de database zo genormaliseerd mogelijk. Uitzonderingen hierop zijn bijvoorbeeld verkoopprijzen, die kunnen fluctueren. In een factuur wil je natuurlijk de prijs niet afhankelijk maken van de dagprijs van het moment dat je de factuur opent. Dus in dat geval leg je de artikelprijs wèl vast in de tabel Facturen/Bestellingen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan