[Access/SQL] Between neemt datums niet mee.

Pagina: 1
Acties:

  • Wom
  • Registratie: Januari 2002
  • Laatst online: 00:02
Ik heb de volgende where voorwaarde gemaakt, maar deze neemt niet alle records mee die binnen de twee ingevoerde datums vallen. Hij pakt diegene eruit die zowel tussen de ingevoerde dagen als binnen de ingevoerde maanden vallen.

Dus als ik wil zien wat tussen 03-04 en 07-06 valt, wil ik ook 29-5 kunnen zien bijvoorbeeld, maar die krijg ik nu niet te zien omdat 29 niet tussen 3 en 7 valt.
Er zit dus een fout in mijn where voorwaarde, maar ik heb geen idee hoe ik het anders zou moeten opzetten.

Iemand die mij op pad kan helpen ?
Dit heb ik tot nu toe:
code:
1
2
3
4
5
6
7
8
9
10
WHERE (((OMNIS_S_FPLANNING.SER_PLKORT)=
[Forms]![Kees Mechielsen BV]![Keuzelijst met invoervak41]) 
AND
 ((DatePart("m",[OMNIS_S_FPLANNING.SER_PLDATUM])) 
between (DatePart("m",[Forms]![Kees Mechielsen BV]![Tekst43])) 
and (DatePart("m",[Forms]![Kees Mechielsen BV]![Tekst45])))
and 
((DatePart("d",[OMNIS_S_FPLANNING.SER_PLDATUM]))
between (DatePart("d",[Forms]![Kees Mechielsen BV]![Tekst43])) 
and (DatePart("d",[Forms]![Kees Mechielsen BV]![Tekst45]))))

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:50

gorgi_19

Kruimeltjes zijn weer op :9

:?

MS Access kent ook datumvelden? Waarom gebruik je die niet en vergelijk je geen echte datums met elkaar, en doe je het met datepart?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Wom
  • Registratie: Januari 2002
  • Laatst online: 00:02
gorgi_19 schreef op 29 april 2004 @ 08:30:
:?

MS Access kent ook datumvelden? Waarom gebruik je die niet en vergelijk je geen echte datums met elkaar, en doe je het met datepart?
Omdat de datum die ik vergelijk een datum is wanneer iets ingevoerd is, maar hier wordt een jaar aan meegegeven (kan ik niet aanpassen, benader via ODBC). Het jaar moet echter vergeten worden, en uit vorige topics kreeg ik te horen dat ik dat mbv. Datediff moest proberen. Dat ging ook goed totdat ik tegen bovenstaande aanliep.

// maar het probleem zit dus in het feit dat ik de datums met datediff datepart uitlees en dan deze vergelijk ?

[ Voor 12% gewijzigd door Wom op 29-04-2004 10:37 ]


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Misschien dat je wat aan deze topic hebt: SQL Datum query

Never underestimate the power of


  • Wom
  • Registratie: Januari 2002
  • Laatst online: 00:02
Ik heb het topic doorgelezen, maar volgens mij is dat toch net een wat ander verhaal. Daar wordt namelijk een query gemaakt die een bepaald jaartal opzoekt om hier een week uit te halen; als ik het goed begrijp tenminste.

Ik zie niet direct waar dat in mijn probleem past :?

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Als je zorgt dat je jaren altijd gelijk zijn, is jouw probleem volgens mij opgelost.

Never underestimate the power of


  • Wom
  • Registratie: Januari 2002
  • Laatst online: 00:02
cameodski schreef op 29 april 2004 @ 10:13:
Als je zorgt dat je jaren altijd gelijk zijn, is jouw probleem volgens mij opgelost.
Op die manier, zat er net aan te denken ja.

Naar aanleiding van dit topic was ik namelijk met datediff datepart aan de slag gegaan. Ik zal eens kijken of ik met die manier van de onderste query uit het topic wat je voorstelde wat kan.

Bedankt voor de tip :)

[ Voor 4% gewijzigd door Wom op 29-04-2004 10:37 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Gooi je niet een beetje datepart en datediff door elkaar? Anyway, zoals gezegd in je vorige topic:
datepart("y") werkt goed maar faalt op schrikkeljaren, en de gebruikelijke methode met month() en year(), of datepart zoals je wilt, ziet er net anders uit dan je hebt ingevoerd.
Jij hebt als voorwaarde:
code:
1
(dag between dag1 en dag2) AND (maand between maand1 en maand2)
da's idd fout. :(

[code]
Maar in hetzelfde topic geeft witte ook een hele mooie. Waarom gebruik je die niet?
code:
1
 Format([datum];"mmdd") BETWEEN format([txt1];"mmdd") and format([txt2];"mmdd")

[ Voor 12% gewijzigd door Lustucru op 29-04-2004 10:29 ]

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


  • Wom
  • Registratie: Januari 2002
  • Laatst online: 00:02
Niesje schreef op 29 april 2004 @ 10:24:
Maar in hetzelfde topic geeft witte ook een hele mooie. Waarom gebruik je die niet?
code:
1
2
 Format([datum];"mmdd") BETWEEN
 format([txt1];"mmdd") and format([txt2];"mmdd")
Omdat de ODBC koppeling het format commando (helaas) niet herkend/ondersteund.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

hu? Access voert die query toch uit op een odbc gekoppelde tabel? dat zou gewoon moeten werken. Anders moet je nog eens goed naar je where-voorwaarde kijken:
(m>m1 and m<m2) OR (m=m1 and d>=d1) OR (m=m2 and d<=d2)

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

Pagina: 1