Vreemd gedrag DateAdd function

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • leenm
  • Registratie: Juni 2010
  • Laatst online: 08-07 11:08
Goedemiddag,

MS Access gedraagt zich weer eens niet zoals ik verwacht. Ik loop door een range v. data heen en kom het volgende tegen in de DateAdd() function:
code:
1
Debug.Print DateAdd("d", 1, #31-9-2012#)
geeft als output 1-10-2012, maar

code:
1
Debug.Print DateAdd("d", 1, #1-10-2012#)
geeft als output 11-1-2012?? Wat doe ik fout? Ik wil gewoon 2-10-2012 eruit krijgen.

Is er hier iemand die me verder kan helpen? Bvd,

Acties:
  • 0 Henk 'm!

  • Nvidiot
  • Registratie: Mei 2003
  • Laatst online: 03-06 16:38

Nvidiot

notepad!

Gokje: Amerikaanse datum instelling. 1-10-2012 = 10 januari 2012. + 1 dag = 11 januari.

What a caterpillar calls the end, the rest of the world calls a butterfly. (Lao-Tze)


Acties:
  • 0 Henk 'm!

  • leenm
  • Registratie: Juni 2010
  • Laatst online: 08-07 11:08
Dat dacht ik ook al, maar waarom gaat het bij 28-9, 29-9 en 30-9 dan wel goed? Mn pc staat gewoon op dutch settings, dat heb ik al gecheckt.

Acties:
  • 0 Henk 'm!

  • 418O2
  • Registratie: November 2001
  • Laatst online: 00:27
omdat hij dan automatisch van een andere notatie uitgaat omdat "28" geen maand is?

Set je locales eens netjes in je app :)

Acties:
  • 0 Henk 'm!

  • leenm
  • Registratie: Juni 2010
  • Laatst online: 08-07 11:08
Access neemt toch de settings van het systeem over? Ik heb even onze beste vriend geraadpleegd, maar volgens mij kan je de locale settings niet specifiek opgeven.

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Je moet een onderscheid maken tussen stringvariabelen "var" en datevariabelen #var#.
Bij het interpreteren van de tekst "11-09-2012" houdt VBA rekening met de systeeminstellingen en maakt hij er 11 september van; de datumvariabele #11-09-2012# wordt op zijn Amerikaans gelezen wat resulteert in 9 november.

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


Acties:
  • 0 Henk 'm!

  • leenm
  • Registratie: Juni 2010
  • Laatst online: 08-07 11:08
Ok dat zie ik nu ja. Op dit moment heb ik vooral problemen met een WHERE clause, hij vind geen records omdat ik als voorwaarde die datum heb. Bij andere queries gaat het gewoon goed overigens :? . Als ik debug, laat hij als waarde van een date variable ook gewoon #2-10-2012# zien en niet #10/2/2012#. Ik heb al allerlei typen concersie geprobeerd, maar tot nu toe geen succes :|

  • LiquidT_NL
  • Registratie: September 2003
  • Laatst online: 13-05-2021
Als je locale goed zijn ingesteld zou ik ook zo 1-2-3 niet weten hoe te handelen. Heb je al zoals Lustucru geprobeerd het als string te interpreteren? Dan zou hij de system locale moeten gebruiken, in ieder geval in Excel.

Als er echt niets anders op zit, kan je ook je data omzetten in een fatsoenlijk format dat goed wordt herkend. Hoe dan ook is het heel vreemd dat in de debug de date wel goed naar voren komt.

Explorers in the further regions of experience...demons to some, angels to others.


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

De query-engine is weer wat anders dan de vba engine. :)
Hoe staat het veld in de database en mbt die query, geef je die datum als constante of als parameter mee? post je sql eens?

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

Pagina: 1