[access] datepart in query andere uitkomst dan in VBA

Pagina: 1
Acties:
  • 248 views sinds 30-01-2008
  • Reageer

  • Force
  • Registratie: Januari 2000
  • Laatst online: 31-07-2023

Force

Kan iemand ff me neus afvegen?

Topicstarter
Ik werk met access 2000 op windows 2000.

In vba code geeft :
code:
1
DatePart("ww", Datum, 2, 2)
de juiste uitkomst, op dit moment 9 (goed)

in een query
code:
1
week: DatePart("ww",[datum],2,2)
geeft als uitkomst 1 meer, op dit moment 10 (fout, moet 9 zijn)
ook
code:
1
 week: Format([datum],"ww",2,2)
geeft als uitkomst 1 meer, op dit moment 10 (fout, moet 9 zijn)
; ipv , ook al geprobeerd, dan krijg ik de melding ongeldige expressie.

Ik heb het al op een andere pc geprobeerd met access 2002 en windows XP, ook daar treed dit op.
Op mijn eigen pc heb ik ook access 97 staan, en daar zie ik hetzelfde gebeuren.

Het gaat echt op alle dagen fout, dus maandag tot zondag week 9, zijn in een query maandag tot zondag week 10.

Nu is het wel op te lossen door in de query -1 toe te voegen, maar dan gaat het mis bij de eerste week. Dan krijg ik bij 1-1-2006(zondag), een week 0. Wat dus ook niet klopt, zou 52 moeten zijn.
Het lijkt alsof in een query de opties ,2,2 genegeerd worden bij het bepalen van het weeknummer, terwijl dit bij het bepalen van de (week)dag (ook in een query) perfect werkt.

Kortom: waarom werkt de functie datepart voor het bepalen van het weeknummer wel goed in vba en niet in een query ?

Leven is als een pijpkaneel, iedereen zuigt eraan en krijgt zijn deel.


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Dat zal waarschijnlijk te maken hebben met de definitie wat de eerste week van een jaar is. Blijkbaar verschilt die instelling.

Je kunt hem in je VBA Datepart makkelijk aanpassen door in de Datepart functie te kijken naar de paramter [FirstWeekOfYear]

http://www.techonthenet.com/excel/formulas/datepart.php

Oops! Google Chrome could not find www.rijks%20museum.nl


  • basz
  • Registratie: April 2000
  • Laatst online: 20-08 07:40

basz

Professioneel prutser

Heeft te maken met het feit dat amerikanen nooit een week 53 hebben doordat ze gewoon de eerste zondag van een jaar week1 geven. In europa doen we dat anders, grootste deel van een week valt in oude jaar? week52 (of evt week53), anders week1... Het is dus iets met locale settings... maar waar, dat weet ik niet...

[ Voor 3% gewijzigd door basz op 02-03-2006 13:26 ]


  • Force
  • Registratie: Januari 2000
  • Laatst online: 31-07-2023

Force

Kan iemand ff me neus afvegen?

Topicstarter
Daar staat dus die 2,2 voor: 2,2 = vbMonday,vbFirstFourDays

Om het nog even wat gekker te maken, als ik:
code:
1
week: Format([datum],"ww",[x],[y])
in mijn query zet, dan vraagt hij bij het uitvoeren om de waarde voor x en voor y.
Vul ik dan voor biede 2 in, dan klopt het allemaal wel. Ook de weeknummers rond de jaarwisseling.

Leven is als een pijpkaneel, iedereen zuigt eraan en krijgt zijn deel.


  • Paxlie
  • Registratie: Oktober 2000
  • Laatst online: 09-02 10:40

Paxlie

chaos en inslag

als je met access of VBA gaat werken moet je echt verschrikkelijk goed in de gaten houden of je danwel met een engelse, danwel met een nederlandse versie werkt.

Die hebben namelijk andere functienamen 8)7
Dat zal dus verder ook wel te maken hebben met hoe de tijdsnotatie is

Wie werd waar wanneer geboren en waarom werd hij door wie hoe genoemd?
braque© zijn is een keuze


  • Force
  • Registratie: Januari 2000
  • Laatst online: 31-07-2023

Force

Kan iemand ff me neus afvegen?

Topicstarter
OPGELOST !!!!!

In een query worden de opties als string behandeld dus:
code:
1
week: DatePart("ww",[datum],"2","2")
werkt wel goed.

Leven is als een pijpkaneel, iedereen zuigt eraan en krijgt zijn deel.

Pagina: 1