[Access] Vergelijken met datums uit tekstveld

Pagina: 1
Acties:

  • Wom
  • Registratie: Januari 2002
  • Laatst online: 10:39
Ik heb via Access twee tabellen van een ODBC koppeling gekoppeld. Eén daarvan is een veld met een startdatum van een bepaalde periode. Nu heb ik de volgende query bij veld criteria hierop:

code:
1
Between Date() And [Forms]![Formuliernaam]![Invoer_dat]


Nu verwacht ik dat hij komt met alle records die tussen de huidige datum en de ingevoerde datum vallen. Echter, dit klopt dus niet, de uitvoer lijkt wel willekeurig.

Nu verwacht ik dat het met de datumnotatie te maken heeft. Wanneer ik via WinSQL de datum oproep dan is de notatie YYYY-MM-DD (zo zou het dus ook in de database moeten staan volgens mij), maar bij Access is de uitvoer DD-MM-YYYY.

Nu heb ik bij de eigenschappen van het invoerveld aangegeven dat hij zich moet houden aan een korte datumnotatie, en heb ook al verschillende invoerfilters geprobeerd. De landinstellingen van mijn systeem staan op de Nederlandse instelling.

Wat zie ik over het hoofd of doe ik verkeerd ?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Ik zou beide zaken (de Date en de tekst uit het textveld) keihard hetzelfde formatten. En dan natuurlijk het veld dat je daar binnen wilt hebben ook!

Varstandigste is dan formatten als yyyymmdd, omdat je dan altijd goed zit met groter en kleiner vergelijkingen. als string komt 02-12-2004 namelijk voor 31-02-2003. Bij een formaat als 20030231 en 20041202 zit je altijd goed...

My personal website


  • Wom
  • Registratie: Januari 2002
  • Laatst online: 10:39
OZ-Gump schreef op 30 maart 2004 @ 10:15:
Ik zou beide zaken (de Date en de tekst uit het textveld) keihard hetzelfde formatten. En dan natuurlijk het veld dat je daar binnen wilt hebben ook!

Varstandigste is dan formatten als yyyymmdd, omdat je dan altijd goed zit met groter en kleiner vergelijkingen. als string komt 02-12-2004 namelijk voor 31-02-2003. Bij een formaat als 20030231 en 20041202 zit je altijd goed...
Wanneer ik de notatie van het veld en die van het invoerveld allebij op yyyymmdd zet dan worden mijn ingevoerde datums inderdaad veranderd naar deze notatie (bv. 02-02-2004 := 20040202 ), en ook in de uitvoer wordt de notatie veranderd, maar de query zelf werkt nog steeds niet.

Wanneer ik echter als criteria het volgende aangeef:
code:
1
Between #2-2-2004# And Date()

werkt het weer wel goed. Dan zou het dus moeten zijn dat de ingevoerde waarde bij het invoerveld niet begrijpbaar is voor de query ?

  • Wom
  • Registratie: Januari 2002
  • Laatst online: 10:39
Overigens, wanneer ik het volgende probeer :
code:
1
Between Date() And Date()-[Forms]![Formuliernaam]![Tekst13]

Krijg ik een gereserveerde foutmelding 7711 waar geen melding voor is.

Wanneer ik
code:
1
Between Date() And Date()-20

doe werkt het weer wel.

Ik heb al gezocht op die foutmelding, maar ik krijg alleen maar postings te zien van mensen die hetzelfde hebben, maar waar geen oplossing of iets dergelijk voor is. Bij Microsoft zelf geven ze aan dat er geen verdere informatie voor is.

[ Voor 4% gewijzigd door Wom op 30-03-2004 11:39 ]