Access en datumformaten

Pagina: 1
Acties:

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 20-08 09:24

Maasluip

Kabbelend watertje

Topicstarter
Waarom is Microsoft Access niet consequent in hoe het datumformaten behandeld? Ik heb een query die in text als volgt uitziet:
SQL:
1
2
3
4
5
select count(movements) AS Aantal, Avg(workingdays([date_start],[date_end])) AS Gemiddeld, StDev(workingdays([date_start],[date_end])) AS Deviatie
from doorloop
where (movements > 1)
     and (date_start >= #15-08-2005#)
     and (date_end   <= #5-09-2005#);
Het gaat dus om de datums. Elk normaal mens zou zeggen dat date_start >= 15 augustus 2005 moet zijn en date_end kleiner of gelijk aan 5 september 2005. Dat is ook de bedoeling.
Access ziet dit anders. #5-09-2005# wordt opeens als 9 mei 2005 gezien 8)7

Als je een query in Access aanmaakt en bovenstaande als tekst in de SQL-view erin plakt en dan Design-view kiest, staat er onder date_end ook opeens <=#9-05-2005#. Kijk je weer in SQL-view staat er weer vrolijk <= #5-09-2005#. WTF?
Access gebruikt dus twee verschillende datumnotaties in een query. Zo kun je toch niet werken?

Hoe kun je hieromheen programmeren? Ik heb geprobeerd Format("05-09-2005","dd-mm-yyyy") of Format(#05-09-2005#,"dd-mm-yyyy") te doen (dat laatste vertaalt Access ook weer fout in Format(#9/5/2005#,"dd/mm/yyyy") ), maar bij beide krijg ik "Unknown Jet Error".

Signatures zijn voor boomers.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Hoe staan je regional settings binnen je OS?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 20-08 09:24

Maasluip

Kabbelend watertje

Topicstarter
Regional settings staan op Dutch (Netherlands) met als Short date format d-MM-yyyy ingesteld.
Maar Access gebruikt dus dd-mm-yyyy en mm-dd-yyyy doorelkaar. Daarbij mag de regional settings niet van invloed zijn. Ik haal de datum van het calendar ActiveX component, die levert het in de local setting aan en met die string werk ik verder. Ik kan niet gaan bepalen dat 5-9 in mei of september ligt, maar ik mag wel van Access eisen dat hij eenzelfde datumnotatie in een query aanhoudt. Daarbij wordt dit een applicatie die door meerdere mensen gebruikt gaat worden dus ik kan geen aannames over de instelling van het datumformaat doen.

Of ik moet er omheen programmeren, en dat is me met Format nog niet gelukt.

[ Voor 12% gewijzigd door Maasluip op 05-09-2005 10:53 ]

Signatures zijn voor boomers.


  • danielsrje
  • Registratie: Oktober 2003
  • Laatst online: 31-12-2024
Yep, het bekende datum probleem :*)

Het is een tijdje geleden dat ik hierover gestruikeld ben, maar er staat me iets bij van 'gebruik ISO-formaat' datums in je queries, dwz yyyy-mm-dd. Dit gaat dan, als het goed is, goed voor Access en ook voor ADO.

Groetjes, Richard

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Boss in "Access datum probleem" gezien?

ALs je goed kijkt zou je bijvoorbeeld ook zien dat er in sql-view ',' staan, waar in design view ';' staan. M.a.w. de GUI is gelocaliseerd, waar SQL gewoon de amerikaanse notatie aanhoudt. Al is Access dan wel zo vriendelijk om de niet bestaande datum 15/8/2005 te interpreteren als 15-8-2005. ;)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Mmmm, Niesje beantwoord je vraag al (mbt regional settings ;)). MS SQL heeft dit probleem ook, de uitdaging is natuurlijk dat je het in je GUI zou moeten afvangen. Enige vraag die rest: kan je het met het gebruikte component afvangen?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 20-08 09:24

Maasluip

Kabbelend watertje

Topicstarter
Die link van Niesje had ik niet gezien, is zo te zien wel de kern van het probleem.

De oplossing is dus door in het maken van de query alle datums als Format(datumveld, "mm/dd/yyyy") te zetten, dan hoef je het niet in het component af te vangen (wil ik ook niet want de datum wordt ook weergegeven voor de gebruiker).

Access is wel goed bezig door niet te klagen als de datum niet in mm/dd/yyyy past maar die stilletjes in dd-mm-yyyy te veranderen. Dat is voor mij de grootste fout die Access maakt.

Ik heb echt zo'n zin om eens verschikkelijk te gaan ranten op alle Office produkten, maar ik vrees dat me dat op een permban komt te staan. Er gaat echter geen dag voorbij dat ik me aan Access erger.

Signatures zijn voor boomers.


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Maasluip schreef op maandag 05 september 2005 @ 11:23:
[...]

Er gaat echter geen dag voorbij dat ik me aan Access erger.
Zó tevreden klanten kom je niet elke dag tegen. >:)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1