Access - Selection queries
- Date:
- Author: Stefan Cruysberghs
- Deze pagina is enkel in het Engels beschikbaar
Voor persoonlijk gebruik of eenvoudige toepassingen is MS Access een interessante database. Vooral omdat ook beginners zonder uitgebreide database- of SQL-kennis toch snel aan de slag kunnen. Voor het maken van queries biedt Access een intuïtieve visuele interface aan waarmee je zelfs uitgebreide queries kan samenstellen. Hieronder een overzicht van operatoren en functies die je kan gebruiken.
Vergelijkingsoperatoren
Operator | Beschrijving |
= | Gelijk aan (kan eventueel weggelaten worden) |
< | Kleiner dan |
<= | Kleiner dan of gelijk aan |
> | Groter dan |
>= | Groter dan of gelijk aan |
<> | Ongelijk aan |
Voorbeelden
Criteria | Veld | Mogelijke uitvoer |
>3910 | POSTCODE | 3920, 3500, 9000 |
>="Jan" | VOORNAAM | Jan, Kim, Ludo, Leen, Marie, Stijn, Tim |
=Ja | GETROUWD | (Alle personen die getrouwd zijn) |
<#10/08/90# | DATUM | 01/09/63, 23/03/75, 12/11/80, 30/01/88 |
<"d*" | NAAM | Antonissen, Alen, Bots, Cruysberghs, Cools |
Andere operatoren
Operator | Beschrijving |
Between ... and ...
Tussen ... en ... |
Hiermee kan men bepalen of een waarde zich tussen twee waardes bevindt De grensen worden ook meegeteld. |
In(...;...) | Hiermee bepaal je of een waarde voorkomt in een reeks waarden |
Is Null | Hiermee wordt gecontroleerd of een waarde Null (=leeg) is |
Like
Zoals |
Hiermee kan je gebruik maken van joker tekens (* : meerdere willekeurige tekens, ? : één willekeurig teken, # : één willekeurig cijfer) |
Voorbeelden
Criteria | Veld | Mogelijke uitvoer |
In("Jan";"Piet";"Tom";"Peter") | VOORNAAM | (Alle personen die Jan, Piet, Tom of Peter noemen) |
Between 3900 and 3920 | POSTCODE | 3900, 3910, 3920 |
Between #01/03/76# and #01/05/80# | GEBOORTEDAT | 01/03/76, 15/10/77, 07/04/77, 08/12/78, 30/09/80 |
Not like "L*" | PLAATS | Aalst, Brussel, Gent, Overpelt, Tongeren |
Like "[!L]*" | PLAATS | Aalst, Brussel, Gent, Overpelt, Tongeren |
Like"d??" | WOORDEN | dat, die, dit |
Like"d*" | WOORDEN | dat, daarom, deze, deken, die, dier, dit, doos |
Like"[rs]*" | VOORNAAM | René, Robbie, Stefan, Stijn |
Like"[r-t]*" | VOORNAAM | René, Robbie, Stefan, Stijn, Tim |
Like"*[rmn]*" | NAAM | Antonissen, Alen, Cruysberghs, Maes, Peters, Raes |
Like"#[ds]*" | GETAL | 1ste, 2de, 3de |
Like"011/54*" | TELEFOON | 011/54.13.26, 011/54.25.48, 011/54.31.35 |
Logische operatoren
Operator | Beschrijving |
And, En | Beide waarden moeten waar zijn |
Or, Of | Minstens één van beide voorwaarden moet waar zijn |
Not, Niet | Dit keert de voorwaarde om |
Xor, Xof | Juist één van de voorwaarden moet waar zijn |
Voorbeelden
Criteria | Veld | Mogelijke uitvoer |
>"q*" and <"u*" | VOORNAAM | René, Robbie, Stefan, Stijn, Tim, Tristam |
="r*" or "s*" | VOORNAAM | Robbie, Stefan, Stijn |
Not like "L*" | PLAATS | Antwerpen, Brussel, Gent, Luik, Tongeren |
"*a*" Xof "*m*" | WOORDEN | aap, kapper, lach, mens, moeder (niet maan, raam) |
Andere operatoren en expressies
- Als er naar tekst gezocht moet worden, moeten de expressies altijd tussen aanhalingstekens staan (".."), ook de jokertekens * ? # en opsommingstekens []. Namen van velden (ook met parameters) mogen niet tussen de aanhalingstekens staan.
- Met het ampersand-teken (&) kan je verschillende expressies aan elkaar koppelen. Dit moet je bv. zeker gebruiken als in je expressie o.a. een veld is opgenomen. vb. Like "*" & [NAAM]
- [...] Met vierkante haakjes kan je een domein aanduiden. Dit kan een opsomming zijn van tekens of als je een koppelteken (-) gebruik kan je een gans gebied aanduiden. Met het uitroepingsteken (!) kan je tekens opsommen die de gezochte velden niet mogen bevatten. vb. [lma] [a-m] [!mla]
- Als je datums wil gebruiken met je voor en na de datum het hekje (#) plaatsen.
- Men kan in een query ook parameters gebruiken, waardoor criteria variabel worden. Wanneer je een naam van een veld opgeeft, die de query niet kent, dan zal bij de uitvoer naar een waarde voor dit veld gevraagd worden. Als je nu als veldnaam een vraag stelt en deze dus tussen vierkante haakjes plaats, dan zal Access bij de uitvoer van de query naar een parameter vragen. vb. =[Geef de postcode]
Functies
- Count([veld]), Aantal Geeft het aantal velden met naam [veld]
- Sum([veld]), Som Berekent de som van de waardes in het veld [veld]
- Avg([veld]), Gem Berekent het gemiddelde van waardes
- Date() Geeft de huidige datum 99/99/99
- Year([veld]) Geeft het jaar van een veld dat een datum bevat
- Month([veld]) Geeft de maand van een veld dat een datum bevat
- Left$([veld];n) Geeft de n linker tekens van [veld]
- Right$([veld];n) Geeft de n rechter tekens van [veld]
- Mid$([veld];n) Geeft alle tekens beginnend bij de n-de positie
- Len([veld]) Geeft de lengte van een veld
- Lcase$([veld]) Geeft het veld terug in kleine letters (lowercase)
- Ucase$([veld]) Geeft het veld terug in hoofdletters (uppercase)
Voorbeelden
Initialen van persoon in hoofdletters en gescheiden met punt |
ucase$(left$([VOORNAAM];1)) & "." & ucase$(left$([NAAM];1)) & "." |
1ste en laatste karakter in hoofdletters, rest in kleine letters |
ucase$(left$([NAAM];1)) & lcase$(mid$(left$([NAAM];len([NAAM])-1);2)) & ucase$(right$([NAAM];1)) |