Datumbereik

  • Onderwerp starter Onderwerp starter scw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

scw

Gebruiker
Lid geworden
5 jun 2009
Berichten
530
Goedemiddag,

Ik gebruik nu voor een query de volgende criteria:

Is Not Null And Between [Forms]![frmDatumbereik]![Begindatum] And [Forms]![frmDatumbereik]![Einddatum]

Hiermee filter die alle data tussen de ingegeven data op het form. Echter, wanneer ik bijv. 30/09/2009 en 30/09/2009 intyp, geeft die geen resultaten weer: want er valt niets tussen 30 september.

Welke criteria kan ik gebruiken voor 't/m'??? Dus dat die alle data van Begindatum en tussen t/m Einddatum pakt???

Ben benieuwd!!!
 
Goedemiddag,

Ik gebruik nu voor een query de volgende criteria:

Is Not Null And Between [Forms]![frmDatumbereik]![Begindatum] And [Forms]![frmDatumbereik]![Einddatum]

Hiermee filter die alle data tussen de ingegeven data op het form. Echter, wanneer ik bijv. 30/09/2009 en 30/09/2009 intyp, geeft die geen resultaten weer: want er valt niets tussen 30 september.

Welke criteria kan ik gebruiken voor 't/m'??? Dus dat die alle data van Begindatum en tussen t/m Einddatum pakt???

Ben benieuwd!!!

Zoiets
Code:
Is Not Null And (Between [Forms]![frmDatumbereik]![Begindatum] And [Forms]![frmDatumbereik]![Einddatum]) [COLOR="Red"]Or [Forms]![frmDatumbereik]![Begindatum] = [Forms]![frmDatumbereik]![Einddatum][/COLOR]

Groet

Wim
 
OK dank je! Ik heb het nog niet uitgebreid getest, dit kan ik pas morgen doen: dan zet ik vervolgens de vraag ook even op opgelost (indien dat het geval is natuurlijk). :thumb:
 
Je moet nog wel even goed op de haakjes in je query letten.
Dat kan wel van invloed zijn op de uitkomst.

Succes en ik ben morgen ook bereikbaar:rolleyes:
Wim
 
Hiermee filter die alle data tussen de ingegeven data op het form. Echter, wanneer ik bijv. 30/09/2009 en 30/09/2009 intyp, geeft die geen resultaten weer: want er valt niets tussen 30 september.

Dit voorbeeld zal inderdaad geen records laten zien, ook al verwacht je resultaten van één dag te zien. De reden? Een datum begin altijd op 0:00, 30-9 als einddatum werkt dus in dit geval eigenlijk als 29-9 23:59.59 Eigenlijk zou je dus bij de einddatum één dag moeten optellen: dus 30-9 als begindatum, en 1-10 als einddatum. Hoef je verder je filter niet voor aan te passen!
 
nog niet...

@WimenBeer:

Is Not Null And (Between [Forms]![frmDatumbereik]![Begindatum] And [Forms]![frmDatumbereik]![Einddatum]) Or [Forms]![frmDatumbereik]![Begindatum] = [Forms]![frmDatumbereik]![Einddatum]

Werkt helaas niet, wanneer ik bijv. 30/09/2009 en 30/09/2009 intyp, komt Access met een rare selectie inclusief juli, augustus... Misschien moet die toch net even iets anders??:confused:
 
@Tardis: Als je van een gebouw springt, is de laatste seconde de meest vervelende, maar in dit geval een bietje muggenzeiken. Wat ik ermee wilde aangeven was, dat je bij het ingeven van een einddatum alles tot aan de datum ziet, omdat de datum op 0:00 begint. wat er overigens ook bijstond.... Lezen misschien?

@scw:
Doet-ie het wel als je als einddatum de volgende dag neemt met de formule
Is Not Null And Between [Forms]![frmDatumbereik]![Begindatum] And [Forms]![frmDatumbereik]![Einddatum] ?
 
@WimenBeer:

Is Not Null And (Between [Forms]![frmDatumbereik]![Begindatum] And [Forms]![frmDatumbereik]![Einddatum]) Or [Forms]![frmDatumbereik]![Begindatum] = [Forms]![frmDatumbereik]![Einddatum]

Werkt helaas niet, wanneer ik bijv. 30/09/2009 en 30/09/2009 intyp, komt Access met een rare selectie inclusief juli, augustus... Misschien moet die toch net even iets anders??:confused:

scw

Ikk weet niet exact de schtijfwijze voor deze filter maar de Between werkt ook als je het volgende voor elkaar krijgt
Code:
Is Not Null And >=[Forms]![frmDatumbereik]![Begindatum] And <=[Forms]![frmDatumbereik]![Einddatum])

De <= en >= moeten het voor je voorelkaar krijgen.
Wellicht moet je Greaterthan or Equal gebruiken, maar dat weet ik nu even niet.

SUcces
Wim
 
Laatst bewerkt:
Dit help je misschien ook nog wat verder.

In de tabel staan wel alleen maar enkel datums zonder tijd. Maar dit werkt ook als er tijd bijstaat.

De query is afhankelijk van Form1, het subformulier op Form1 is niet afhankelijk. Query1 is eigenlijk overbodig maar dit is mss wat overzichtelijker. (hoewel)


Groeten

[EDIT]
Even er de SQL bij gezet:
[SQL]
SELECT tbl_Datums.Datum, Forms!Form1!dtmBegin AS Expr1, Forms!Form1!dtmEind AS Expr2
FROM tbl_Datums
WHERE ((([Forms]![Form1]![dtmBegin]) Is Null) AND (([Forms]![Form1]![dtmEind]) Is Null)) OR (((tbl_Datums.Datum)>=[Forms]![Form1]![dtmBegin]) AND (([Forms]![Form1]![dtmBegin]) Is Not Null) AND (([Forms]![Form1]![dtmEind]) Is Null)) OR (((tbl_Datums.Datum)<=[Forms]![Form1]![dtmEind]) AND (([Forms]![Form1]![dtmBegin]) Is Null) AND (([Forms]![Form1]![dtmEind]) Is Not Null)) OR (((tbl_Datums.Datum)>=[Forms]![Form1]![dtmBegin] And (tbl_Datums.Datum)<=[Forms]![Form1]![dtmEind]) AND (([Forms]![Form1]![dtmBegin]) Is Not Null) AND (([Forms]![Form1]![dtmEind]) Is Not Null));
[/SQL]

Mijn excusens maar dit werkt dus niet met datum + tijd

[/EDIT]
 

Bijlagen

Laatst bewerkt:
Je hebt in het voorbeeld echter geen tijden staan, alleen datums... En als ik het veld DatumToegevoegd gebruik, kan ik nog steeds op 30-9 filteren, dus eigenlijk snap ik het probleem niet.
Overigens: de filtering die je hebt gemaakt in de query, is een van de meest opvallende die ik de laatste tijd heb gezien, en ik denk dat hij een stuk simpeler kan. Ik heb er dit van gemaakt, en die doet het prima:

Code:
SELECT tbl_Datums.DatumToegevoegd
FROM tbl_Datums
WHERE (((tbl_Datums.DatumToegevoegd) Between [Forms]![Form1]![dtmBegin] And [Forms]![Form1]![dtmEind]));
Een stukkie simpeler, toch ;)
 

Bijlagen

  • 30-9.jpg
    30-9.jpg
    30,7 KB · Weergaven: 37
Eigenlijk was ik iets te snel gisteren; je query moet er zo uitzien als je een datum+tijd veld gebruikt:

SELECT DateValue([DatumToegevoegd]) AS Datum_Toegevoegd FROM tbl_Datums WHERE (DateValue([DatumToegevoegd]) Between Forms![Form1 subform]!dtmBegin And Forms![Form1 subform]!dtmEind);

Je moet, kortom, eerst van je datum/tijd veld een datum maken zonder tijd, omdat je vergelijkt met datums zonder tijd.
 
OctaFish, je laatste post is inderdaad beter. Maar in het vb dat ik gegeven had kun je eventueel begin of eind (of beide) weglaten en krijg je nog steeds resultaten.

Alsook wanneer ik met datum en tijd werk deel ik beide meestal op in hun eigen kolom. Met DateValue en TimeValue.

Groeten
 
Laatst bewerkt:
Beste mede formumleden,

Volgens mij blijft nog altijd het probleem van Between bestaan.
scw is trouwens afgehaakt, maar de discussie gaat verder zonder zijn reactie.

Ik weet ook niet meer waar dit naar toe gaat
Wim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan