Zoeken in MS Access 2010-cursus:

Selectiequery's ontwerpen

1. Leerdoel

De student moet in staat zijn om records in een database op te zoeken aan de hand van query's en daartoe een gepaste query te ontwerpen.

2. Toelichting

Tot nu toe werd uitgelegd hoe gegevens in een database kunnen worden opgeslagen en hoe ze kunnen worden beheerd (wijzigen, wissen, sorteren,...) al dan niet gebruikmakend van een formulier.

Thans richten we de aandacht op het 'exploiteren' van databases en dan in het bijzonder door een database te 'ondervragen': vragen om bepaalde records te selecteren en te tonen.

Access maakt daarbij gebruik van een vraagtaal - een 'query language', die 'SQL' (Standard Query Language) genoemd wordt - om specifieke records uit een database te selecteren.

Met deze vraagtaal kan je bijvoorbeeld in een personeelsdatabase:

Vermits er meerdere typen query's bestaan kan je met query's veel meer doen dan in de vorige paragraaf gesuggereerd wordt.  Naast de zogenaamde 'Selectiequery' bevat Access nog andere querytypes: interactieve query, kruistabelquery, samenvoegquery, enzovoort. Deze querytypes komen verder in dit zelfstudiepakket aan bod.

In een selectiequery worden de geselecteerde velden, afkomstig uit één of zelfs meerdere tabellen, 'bij elkaar gebracht'.  
Aan één of meerdere van deze velden kan een criterium worden verbonden, waaraan voldaan moet zijn wanneer de query wordt uitgevoerd.  
Het resultaat van een query is dus een geselecteerd aantal velden (dus niet noodzakelijk alle velden uit een tabel) waarin enkel de informatie van records wordt getoond die aan de gestelde selectiecriteria voldoen (en dus niet àlle records uit een tabel).
Op basis van een selectiequery kan vervolgens een formulier worden gemaakt, waarin enkel de geselecteerde velden en records getoond worden, of een rapport waarmee de geselecteerde velden en records kunnen worden geanalyseerd en afgedrukt.

3. Werkwijze

  1. Om een selectiequery (of elke ander querytype) te construeren klik je in het lint op het tabblad 'Maken'.

  1. Rechts in het tabblad zit de groep 'Query's'.
  2. In deze groep zijn thans twee opdrachtknoppen van belang 'Wizard Query' en 'Queryontwerp' . Ze geven twee manieren aan waarop een query kan worden gebouwd: met of zonder wizard.

3.1 Een selectiequery bouwen met de 'Wizard Query'

Om een selectiequery te kunnen bouwen, heb je noodzakelijkerwijze een tabel nodig, die als basis voor de query zal dienen.

Een tabel bevat vaak veel meer velden dan je op een bepaald moment nodig hebt om een specifieke taak te volbrengen. Voor een lijst, die bijvoorbeeld de woonplaats van werknemers weergeeft, zijn slechts drie tabelvelden nodig: de namen, voornamen en postnummers. De lijst moet worden gesorteerd op het veld postnummer.

  1. Open andermaal je 'Personeelsdatabase'
  2. Klik in het lint op het tabblad 'Maken'
  3. Klik in de groep 'Query's' op de opdrachtknop 'Wizard Query'
  4. Daardoor wordt het dialoogvenster 'Nieuwe query' geopend

  1. Selecteer de optie 'Wizard Selectiequery' en klik op de knop 'OK'
  2. De wizard toont een eerste beeldscherm:

    1. Selecteer de tabel waaruit de selectiequery de nodige velden kan ophalen
    2. Klik op een veldnaam in de lijst 'Beschikbare velden' om het veld te selecteren
    3. Klik op de knop om het veld naar de lijst 'Geselecteerde velden' te verplaatsen
    4. Klik op de knop 'Volgende' wanneer alle benodigde velden werden geselecteerd

  1. Wijzig de voorgestelde naam in een betekenisvolle naam, die de functie van de query toelicht. Bijvoorbeeld: 'Werknemers naar woonplaats'

  1. Klik op de knop 'Voltooien' om het resultaat van de selectiequery te bekijken: een tabel waarin de namen van alle eerder ingevoerde werknemers worden weergegeven, evenals het postnummer.

Noot: indien niet voor alle werknemers het postnummer werd ingevoerd, dan kan je dat ofwel nu in de tabel - uitkomst van de selectiequery - meteen doen, ofwel aan de hand van één van de eerder aangemaakte formulieren.

  1. Bemerk ook dat in het navigatiedeelvenster de nieuwe query wordt weergegeven achter het icoon met overlappende tabellen en dat de query wordt weergegeven in 'Gegevensbladweergave' (zoals rechts onderaan in de statusbalk wordt aangegeven door het icoon )
  2. Om de tabelgegevens te sorteren op postnummer ga je als volgt te werk (verder in deze cursus wordt deze procedure en onderstaand beeldscherm nader toegelicht)

    1. Klik in het tabblad 'Start' op de knop 'Weergave' of in de statusbalk op de knop 'Ontwerpweergave'
    2. Klik onder de veldnaam 'Postnummer' op de cel in de rij 'Sorteervolgorde' en vervolgens op de daardoor getoonde vervolgknop
    3. In de geopende vervolgkeuzelijst kies je voor de optie 'Oplopend'

    1. Om de selectiequery opnieuw uit te voeren, klik je in het tabblad 'Ontwerp' van het lint op de opdrachtknop 'Uitvoeren' van de groep 'Resultaten'
  1. Access toont de nieuwe uitkomst van de query: een namenlijst gesorteerd op postnummer

  1. Sla de selectiequery andermaal op , waarna je deze mag sluiten:

3.2 Een selectiequery klaarzetten in ontwerpweergave

Onderstel dat we nieuwe een selectiequery willen bouwen in onze 'Personeelsdatabase' op basis van de eerder gemaakte tabel 'Werknemers Adressen'. Deze query moet enkel de vrouwelijke werknemers uit de gehele database lichten en ze geordend weergegeven op datum van indiensttreding.  
Zorg er daartoe voor dat je in deze tabel, een tiental medewerkers hebt ingevoerd (klik hier om te lezen hoe dit kan), mannen en vrouwen door elkaar.

  1. Klik in het lint op het tabblad 'Maken'
  2. Klik vervolgens in de groep 'Query's' op de opdrachtknop 'Queryontwerp' .
  3. Access opent het dialoogvenster 'Tabel weergeven' waarin je de tabel (of andere query) kan selecteren, waarin zich de velden bevinden die je in de nieuwe query wil opnemen

  4. Op dit moment bevat je Personeelsdatabase slechts één tabel en één query (klik op de tab 'Beide' om dit te controleren). Kies in dit voorbeeld voor de tabel 'Werknemers Adressen' en klik op de knop 'Toevoegen'.
  5. De tabel en de tabelvelden worden in een venster aan de query (met als voorgestelde naam 'Query1') toegevoegd.

  6. Vermits je meerdere tabellen (of query's) als basis voor de nieuwe query kan toevoegen, blijft het venster 'Tabel weergeven' geopend. Omdat er echter geen andere tabellen moeten worden toegevoegd, klik je op de knop 'Sluiten'. Hierdoor wordt het queryvenster van de nieuwe query actief in ontwerpweergave.

  7. Het queryvenster omvat twee delen.

    1. Het bovenste venster bevat de tabellen en query's die zojuist geselecteerd werden. In ons voorbeeld werd enkel de tabel 'Werknemers Adressen' aan de query toegevoegd, welke thans verschijnt als een venster waarin alle velden van de tabel in een rolmenu beschikbaar zijn.
    2. Het onderste deel van het queryvenster is het ontwerpraster of QBE-raster.  QBE staat voor een manier om query's te maken, namelijk: Query's By Example.  Dit is een grafische methode om query's te bouwen door veldnamen vanuit het bovenste venstergedeelte naar het onderste te slepen. 
  8. De belangrijkste opdrachten die met betrekking tot query's kunnen worden uitgevoerd, staan thans automatisch in het tabblad 'Ontwerp' van het contextuele tabblad 'Hulpmiddelen voor query's'.

3.3 Velden aan de query toevoegen

Stel dat in voornoemd overzicht voor elke werkneemster dient te worden weergegeven: de naam, de voornaam, de datum van indiensttreding en het geslacht.

3.3.1 Velden slepen

  1. Selecteer in de lijst met tabelvelden, bovenaan het beeldscherm, de veldnaam 'Familienaam' in de tabel 'Werknemers Adressen'.
  2. Hou de linkermuisknop ingedrukt en sleep de veldnaam naar het onderste deel van het venster.  Laat de muisknop pas los wanneer de veldnaam gepositioneerd is boven de eerste cel achter de melding 'Veld:'.

  3. Wanneer je de muisknop loslaat:

    1. wordt de veldnaam in de rij 'Veld:' ingevoegd
    2. ook de naam van de tabel waaruit het veld afkomstig is, wordt in het ontwerpraster getoond
    3. en tevens wordt door een aangevinkt selectievakje aangegeven dat het veld later - bij het uitvoeren van de query - zal worden 'Weergegeven:'.

      Noot: Indien je in een query meteen alle velden van een tabel wil invoegen, volstaat het om het sterretje in het venster met veldnamen naar het ontwerpraster te slepen.

       

3.3.2 Velden selecteren in het ontwerpraster

Een alternatieve werkwijze voor het toevoegen van velden aan de query gaat als volgt:

  1. Klik in het ontwerpraster op de cel van de rij 'Veld:' waaraan je een veld wil toevoegen, waardoor een vervolgknop verschijnt
  2. Klik op de vervolgknop om een keuzelijst met alle veldnamen uit de eerder geselecteerde tabel of query te openen
  3. Klik op de toe te voegen veldnaam

3.3.3 Veldnamen dubbelklikken

Een derde werkwijze om velden aan een query toe te voegen, is veruit de eenvoudigste: dubbelklik in de lijst met tabelvelden op de namen van velden die je wil invoegen. De volgorde van aanklikken bepaalt de volgorde waarin de velden verschijnen in de queryuitkomst.

Volg één van de voornoemde drie werkwijzen om de veldnamen 'Voornaam', 'Geslacht' en 'Datum in dienst' in het onderste vensterdeel in te voegen.  Het ontwerpraster ziet er dan als volgt uit.

3.4 Velden rangschikken

Mocht de volgorde waarin de velden in het ontwerpraster voorkomen niet gepast zijn, dan kan je deze op de volgende wijze verplaatsen:

  1. Selecteer de kolom, die moet verplaatst worden, door de muiswijzer net boven de kolom te plaatsen en te klikken wanneer deze wijzigt in een zwarte neerwaartse pijl.

  2. Na het klikken op de  kolomkop van het geselecteerde veld (het smalle grijze blokje boven de kolom), sleep je het veld met ingedrukte linkermuisknop naar de nieuwe locatie.

  3. Laat de muisknop los wanneer je de nieuwe locatie bereikt hebt, wat tijdens het slepen wordt aangegeven door een zwarte verticale lijn.

3.5. Velden invoegen en verwijderen

  1. Selecteer in het bovenste vensterdeel het veld dat moet worden ingevoegd.
  2. Sleep het veld, zoals in de voorgaande paragraaf beschreven, naar de plaats waar het moet worden tussengevoegd: de kolom waar het tussengevoegde veld moet vóór komen.
  3. Laat de muisknop los en het veld wordt tussengevoegd.

Om een veld te verwijderen klik je op de kolomkop van de betreffende kolom en druk je op de 'Delete'-toets op je toetsenbord.

3.6 De query opslaan

  1. Klik op de knop 'Opslaan' in de werkbalk 'Snelle toegang'
  2. Vul een gepaste naam in voor de query in het dialoogvenster 'Opslaan als'

  3. Klik op de 'OK'-knop

3.7 De query uitvoeren

Het resultaat van een query kan je zo vaak als nuttig is oproepen ten einde de werking van de query te testen.

Klik daartoe in het tabblad 'Ontwerp' (groep 'Resultaten') op de knop 'Uitvoeren' , waardoor de uitkomst van de query wordt getoond in een basistabel.  Deze basistabel bevat enkel de geselecteerde velden uit de onderliggende tabel(len) en enkel de records zoals vermeld in de criteria. (zie verder).

Je kan terug overschakelen naar de ontwerpweergave van de query door op de knop te klikken. 

3.8 De query openen

Je kan een eerder opgeslagen query opnieuw openen door in het navigatiedeelvenster op de naam van de query te dubbelklikken. Querynamen worden in dit venster voorafgegaan door een icoon met overlappende tabellen .

Bij het openen van de query wordt deze meteen uitgevoerd (zie voorgaande paragraaf) en worden de uitkomsten gepresenteerd in een uitkomstentabel.

4. Bronnen

    Helpprogramma bij Microsoft Access 2010: zoek op 'query's maken'.