Eén van de grote voordelen van een DBMS bestaat erin dat je op een vrij eenvoudige manier een selectie op de gegevens kunt doorvoeren. Als je een databank raadpleegt, heb je meestal maar een beperkte hoeveelheid gegevens nodig. In Access maken we voor het doorvoeren van die selectie gebruik van een query.
Via wizard
Access begeleid je via een wizard door verschillende stappen in het aanmaken van een query.
Queryontwerp
Via een drag en drop weergave kan je een query samenstellen.
Voorbeeld 1
Een query met de velden Naam, Voornaam, Straat en nummer, Gemeente, Postnummer en Telefoonnummer van alle personeelsleden uit Brussel of Antwerpen. De sortering gebeurd op naam en voornaam.
De twee voorwaarden staan hier op een aparte regel omdat ze niet tegelijk vervuld moeten zijn. Het gaat hier om werknemers die in Brussel of Antwerpen wonen.
Voorbeeld 2
Een query met de velden Naam, Voornaam, Geboortedatum van alle mannelijke personeelsleden die geboren zijn tussen 1978 en 1982. De personeelsleden worden oplopend gesorteerd op geboortedatum. Het veld Geslacht moet niet weergeven worden.
De voorwaarden staan hier op één regel omdat ze tegelijk vervuld moeten zijn. De personeelsleden moeten in de periode 1978-1982 geboren zijn én van het mannelijk geslacht. Bij de selectiecriteria wordt een datum tussen hekjes (#) en tekst tussen aanhalingstekens (").
Voorbeeld 3
Een query met alle velden van de personeelsleden die een salaris hebben dat hoger dan 1 800 EUR.
In de rij Veld staat in de eerste kolom tblPersoneelsleden*. Dat is een speciaal gegevenstype dat ervoor zorgt dat alle velden in de query opgenomen worden. Het veld Salaris wordt niet extra weergeven daar het uitgevinkt staat.
Voorbeeld 4
Een query met Personeelsnummer, Naam, Voornaam en Geboortedatum van de personeelsleden van wie de naam met V begint. De personeelsleden worden aflopend gesorteerd op geboortedatum.
Een opstellen van de criteria is niet altijd eenvoudig. Daarom krijg je in het volgende punt eerst de gelegenheid om een aantal voorwaarden te bekijken.
'A' Or 'B' Or 'C'
Not('A' Or 'B' Or 'C')
> 25000 And < 50000
>= 25000 And <= 50000
Not Between 25000 And 50000
>= #2020-01-01#
0
Is Null
<> 0
Is Not Null
Like "*computer*"
Between #01/01/2020# And #31/12/2020#
Ja
"Ja"
De inhoud van het veld moet A,B of C zijn.
De inhoud van het veld mag niet A,B of C zijn.
Het getal moeten tussen 25 000 en 50 000 liggen.
Zoals het voorgaande, maar 25 000 en 50 000 zijn nu inbegrepen.
Het getal mag niet tussen 25 000 en 50 000 liggen.
De datum moet 1 januari 2020 of later zijn.
De inhoud moet 0 zijn.
Het veld moet leeg zijn.
De inhoud mag niet 0 zijn.
De inhoud mag niet leeg zijn.
Het woord computer komt ergens in het veld voor.
De datum moet in 2020 liggen.
De inhoud van het Ja/Nee-veld is Ja.
De inhoud van het tekstveld is Ja.
Uit de bovenstaande voorbeelden blijkt dat je bij het opstellen van criteria heel wat mogelijkheden hebt. We zetten een aantal van die mogelijkheden hebt. We zetten een aantal van die mogelijkheden op een rijtje.
Bij het opstellen van criteria heb je logische operatoren >, <, =, >=, <= en <> nodig.
Je hebt ook jokertekens (wildcards) gebruiken: ?, # en *
?
#
*
Op de plaats van het vraagteken moet juist één teken komen.
Op de plaats van het hekje moet juist één cijfer komen.
Op de plaats van de asterisk kunnen een willekeurig aantal telkens (of geen tekens) staan.
Bij jokertekens moet je altijd Like toevoegen. De veldinhoud staat tussen aanhalingstekens, wat ook het gegevenstype is.
Like 'A*'
Like 'A?'
De veldinhoud begint met A.
De veldinhoud begint met A, gevolgd door juist één teken.
In combinatie met Like kun je in een Criterium ook vierkante haakjes [ ] gebruiken. Binnen de vierkante haakjes kun je dan een uitroepteken (!) of een koppelteken gebruiken (-).
Like '[AC]*'
Like '[A-C]*'
Like '[!AC]*'
Like '[!A-C]*'
De veldinhoud begint met de letter A of C.
De veldinhoud begint met de letters A tot en met C (dus A, B of C).
De veldinhoud begint niet met de letter A of C.
De veldinhoud begint niet met de letters A tot en met C (dus niet A, B of C).
Als je meer dan één voorwaarde bij hetzelfde veld invoert, kun je die voorwaarde combineren (met relationele operatoren);
Or
And
Minstens één van de voorwaarden moet vervuld zijn.
Alle voorwaarden moeten vervuld zijn.
Bepaalde veldtypes worden voorzien van begrenzingstekens als je ze in een Criteria invoert. Als je de begrenzingstekens niet zelf intikt, worden ze door Access toegevoegd.
Tekst
Tussen " "
Datum
Tussen # #
Met Between ... And ... geef je op tussen welke twee waarden de veldinhoud moet liggen.
Als je voor een voorwaarde Not zet, wordt de voorwaarde omgekeerd.
Als je de uitdrukking Is Null bij een bepaalde veld ingeeft, worden de records geselecteerd waarvan de inhoud het veld leeg is. De uitdrukking Is Not Null heeft juist het omgekeerde effect.
Soms wil je graag een variabel gegeven in je query. Zo wil je graag een klantenlijst uit Antwerpen. Telkens een query aanmaken per gemeente is niet productief en onoverzichtelijk. De query ziet er uiteindelijk telkens hetzelfde uit alleen de naam van de gemeente veranderd. Access heeft hier een oplossing voor door gebruik te maken van parameters in een query.
Als we een query, qryPersoneelsledenUitAntwerpen, hebben die de gegevens van alle personeelsleden toont die in Antwerpen wonen. Moet je voor een andere gemeente steeds een nieuwe query ontwerpen.
In de bovenstaande query vervangen we de gemeente door een variabele, een parameter. De parameter heeft de naam [Geef de gemeente op]. Parameters herkennen in de meeste gevallen het type. Dus de "" voor tekst hoeven niet rond de parameter te staan. Je kan dus steeds je query voor een specifieke gemeente maken om het dan te parametriseren.
Tussen de [ ] plaatsen we de vraag die de gebruiker te zien krijgt in zijn invoervak.
Syntax:
[vraag naar de gebruiker]
Opmerkingen
Zorg ervoor dat de naam van de parameter geen veldnaam is;
de vierkante haakjes moet jezelf intikken.
Voorbeeld 1
Geeft de personeelsleden weer met een salaris tussen een lage en een hoge waarde. (Probeer met de waarde 1500 en 1800).
Voorbeeld 2
Geeft de personeelsleden waarvan de naam begint met de opgegeven beginletter(s). (Probeer met D en Van)
Voorbeeld 3
Geeft een overzicht van de personeelsleden die op een opgegeven datum beginnen te werken zijn. (Probeer 01/01/2008)
Voorbeeld 4
Geeft een overzicht van of een bediende gehuwd is of niet. (Probeer Ja of Nee)
Voor deze query moet je het venster Queryparameters de parameter Gehuwd? (Ja of Nee) met als gegevenstype Ja/Nee definiëren. Dat venster open je via tab Ontwerpen en de knop Parameters weergeven/verbergen te klikken.
De volgorde van de parameters bepaalt in welke volgorde de parameters ingegeven moeten worden als je de query uitvoert;
het bepalen van een gegevenstype voorkomt dat de parameter die je intikt bij het uitvoeren van de query verkeerde geïnterpreteerd wordt.
Tip! Indien je wil filteren op lege velden gebruik je Is Null