Record niet weergeven die voldoen aan bepaalde criteria

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

lilx

Gebruiker
Lid geworden
21 aug 2007
Berichten
47
Hallo,

Een heb een query waarbij bij sommige punten bepaalde criteria aan vast zitten. Dat betekend dus als de record niet voldoet aan de criteria dan wordt deze niet weergegeven. Nu kom ik achter een vraag dat voor mij dan althans moeilijk is en ik hier nog niet achter heb kunnen komen. Vandaar dat ik mijn vraag hier stel :D

Mijn access database wordt gebruikt als een rooster. Tot nu toe is er een mogelijkheid geweest om een vakantie periode in te vullen maar deze moest dan handmatig gecontroleerd worden of die persoon op vakantie is.

Nu is mij vraag dus eigenlijk is het mogelijk om de query zo te programmeren dat als de werknemer voldoet aan een bepaald criteria deze juist niet wordt weergegeven. Om mijn idee wat duidelijker te maken zou ik een voorbeeld proberen te geven.

Code:
[B]Naam           achternaam               vakantie                             functie[/B]
Hans                 jassen                      23-1-2008 t/m 25-1-2009     baas
Sjaak                pappen                     15-3-2009 t/m 02-04-2009   schoonmaker
Pieter                schoen                      06-7-2009 t/m 21-7-2009     schoonmaker

Als dit dus mijn query zal zijn en ik in deze query de criteria zou zetten op “schoonmaker” zou de laatste twee uitkomen. Maar dus nu wil ik ook dat er criteria wordt gezet op vakantie. En dus als de query vandaag uitgedraaid zou worden zou er alleen 1 record uit komen want pieter schoen is op vakantie. Want de datum van vandaag (07-07-2009) zit in de dagen van 06-07-09 t/m 21-07-2009.

Ik hoop dat iemand mij zou kunnen helpen met deze vraag of tenminste mij een antwoord kan geven of dit mogelijk is.

Ik maak gebruik van access 2007.

Alvast bedankt.
 
Query datum en functie

Wat jij zoekt is de volgende SQL statement:

Code:
SELECT TblVakRooster.Id, TblVakRooster.Voornaam, TblVakRooster.Achternaam, TblVakRooster.Functie, TblVakRooster.BeginVak, TblVakRooster.EindVak, [datum] AS Expr1
FROM TblVakRooster
WHERE (((TblVakRooster.Functie)="schoonmaker") AND (([datum]) Not Between [TblVakRooster].[BeginVak] And [TblVakRooster].[EindVak]))

Zie bijgevoegd bestand!
 

Bijlagen

bedankt voor je antwoord,

ik heb gekeken naar je voorbeeld en werkte prima naast een klein foutje die ik zelf wist te vinden.

waardoor de query er vervolgens zo uitzag in sql
Code:
SELECT TblVakRooster.Id, TblVakRooster.Voornaam, TblVakRooster.Achternaam, TblVakRooster.Functie, TblVakRooster.BeginVak, TblVakRooster.EindVak, Date() AS Verwijder
FROM TblVakRooster
WHERE (((TblVakRooster.Functie)="schoonmaker") AND ((Date()) Not Between [TblVakRooster].[BeginVak] And [TblVakRooster].[EindVak]));

maar nu probeer ik het te implementeren in mijn originele database, maar nu ben ik er achter gekomen dat als de waardes null of ""(leeg) zijn laat deze ze nu ook niet zien. is het niet mogelijk dat de velden die geen waarde hebben niet worden weergegeven. ik deze probleem zelf proberen op te lossen maar ik ben helaas niet zoeen access of qeury/sql guru ;)
dit is wat ik heb tot nu toe
Code:
SELECT TblVakRooster.Id, TblVakRooster.Voornaam, TblVakRooster.Achternaam, TblVakRooster.Functie, TblVakRooster.BeginVak, TblVakRooster.EindVak, Date() AS Verwijder
FROM TblVakRooster
WHERE (((Date()) Not Between [TblVakRooster].[BeginVak] And [TblVakRooster].[EindVak])) OR (((Date()) Is Null)) OR (((Date())=""));
 
Laatst bewerkt:
Is Null

Volgens mij had je de code bijna goed.

Je hebt gesteld dat huidige datum Null kan zijn: Date() Is Null
Maar wat jij wilt is dat de BeginVak en EindVak Null mogen zijn.
Je krijgt dus de volgende SQL statement:

Code:
WHERE (((TblVakRooster.BeginVak) Is Null) OR ((TblVakRooster.EindVak) Is Null)) OR (((Date()) Not Between [TblVakRooster].[BeginVak] And [TblVakRooster].[EindVak]));
 
tis gelukt. heb nog effe kort moeten uitvogelen om in het orgineele database werkende te krijgen maar dat is ook uiteindelijk gelukt. en heb ook weer wat nieuws geleerd dat is het mooie ervan :D

hartelijk bedankt voor je hulp :thumb:
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan