Access query's

PCMenu Access Tips en trucs Programmavoorbeelden Access
Tabellen en databaseontwerp Access formulieren Access rapporten
Macro, module en programmacode Query's uit AdresMenu

Hebt u een vraag over Access, stel deze dan op een van de forums, bijvoorbeeld http://office.webforums.nl

In deze tekst:

Begrippen
Soorten queries
Gebruik van query's
Punten van aandacht
Kruistabelquery's
Partion()
Draaitabellen in Excel

 

Tip: klik op een afbeelding om deze te vergroten.

Begrippen

In deze tekst wordt het volgende begrip besproken:

*   Met query's kunt u selecties uit een of meerdere tabellen maken, gegevens in tabellen aanpassen, tijdelijke tabellen aanmaken en waarden berekenen om in een tabel, rapport, formulier of grafiek verwerkt te worden.

Soorten queries

Access kent diverse soorten query's:

Selectiequery's:
Met een Selectiequery selecteert u velden uit een of meer samenhangende tabellen. U kunt criteria opgeven, zodat u alleen een bepaalde selectie van records ziet.
Een Parameterquery is een Selectiequery waarbij u bij het oproepen een of meer parameters kunt opgeven. U kunt op deze manier per keer dat u de query oproept een andere selectie bepalen.
Een Totaalquery is een Selectiequery waarbij u waarden totaliseert, bijvoorbeeld de som van alle bestelbedragen per leverancier of het aantal keer dat elke waarde in een bepaald veld in de tabel voorkomt.

Een Kruistabelquery is een query waarmee u de gegevens uit records samenvoegt en gekruist weergeeft. De Kruistabelquery wordt verderop besproken.
Een Draaitabel (in Access vanaf versie Access 2002) is een weergave van een Selectiequery waarmee u de gegevens uit records samenvoegt en gekruist (gedraaid) weergeeft, u kunt bij een draaitabel meerdere groeperingniveaus instellen. De draaitabel is ook bekend in Excel.

Actiequery's:
Met een Bijwerkquery werkt u velden in de records bij.
Met een Toevoegquery voegt u records aan een andere tabel toe.
Met een Tabelmaakquery maakt u een nieuwe tabel aan de hand van andere tabellen en/of query's.
Met een Samenvoegquery kunt u twee of meer tabellen samenvoegen. De tabellen moeten dan wel dezelfde opbouw hebben (aantal velden, veldtypes).

U kunt query's gemakkelijk maken en bewerken in het query-weergavevenster. U kunt tabellen toevoegen, velden naar de kolommen slepen enz.
Elke query wordt in Access op de achtergrond vertaalt naar Structured Query Language (SQL). SQL is een bekende taal die ook in veel andere programmeeromgevingen bekend is. Een voorbeeld van regel in SQL is:
Select Distinct Aanhef From tblNaam Where Aanhef <> "De heer";
U kunt ook direct uw query in SQL schrijven. Samenvoegquery's kunt u alleen in SQL schrijven, u kunt deze niet in het query-weergavevenster maken.

Gebruik van query's

Als u alle tabellen hebt gedefinieerd en de relaties hebt vastgelegd, dan kunt u nu queries en formulieren maken. In de praktijk blijkt het vaak het makkelijkst te zijn wanneer u een formulier niet op basis van een tabel, maar op basis van een selectiequery maakt. U kunt met queries selecties uit meerdere tabellen maken en ook records uit de tabellen bijwerken, aanvullen of verwijderen of een nieuwe tabel maken.
U kunt criteria in de velden zetten en sorteren op de waarde van de velden. Bij het sorteren begint Access met de meest linkse sorteervolgorde. Voorbeeld van een Selectiequery met sortering en voorwaarden:

Klik om afbeelding te vergroten

Punten van aandacht

Access gaat vaak ongelukkig om met ontbrekende (Null) waarden in een veld. U kunt deze problemen omzeilen door rond de waarde de functie Nz() (non-zero) te plaatsen. Deze functie zet Null-waardes om in een lege (Empty) string ( "" ) bij tekstvelden of in de waarde 0 bij numerieke velden. Voorbeeld: Waarde = Nz(txtVeld).
U kunt ook de Iif() functie gebruiken (Inmediate If), om een lege waarde om te zetten in een andere waarde: voor een tekstveld: Iif(Not IsNull(txtVeld), txtVeld, "Leeg"), voor een numeriek veld: Iif(Not IsNull(txtVeld), txtVeld, 0). Als u deze functie in een query gebruikt, gebruik dan een ; in plaats van een , als scheidingsteken.
Voor Access 97 NL gebruikers: Als u de Opbouwfunctie in Access 97 gebruikt, dan gebruikt Access vaak de Nederlandse taal, bijvoorbeeld Formulier!frmNaam!txtAchternaam . Access 2000 en hoger kennen deze Nederlandstalige opdrachten echter niet en kennen alleen de Engelstalige begrippen.  U kunt daarom het beste direct de begrippen in het Engels omzetten, Access 97 kan hier ook prima mee uit de voeten en u krijgt geen problemen met anderstalige versies van Access of hogere versies van Access. In dit voorbeeld wijzigt u de regel in Forms!frmNaam!txtAchternaam .

Kruistabelquery's

In Access kunt u kruistabelquery's maken. Een kruistabelquery (deels vergelijkbaar met de draaitabellen in Excel) is een interactieve tabel waarmee u snel grote hoeveelheden gegevens kunt samenvatten. U kunt de rijen en kolommen in het rapport draaien om verschillende samenvattingen van de brongegevens weer te geven. Een kruistabelquery heeft kolommen en rijen. Op de kruispunten van kolommen en rijen plaatst u de waarde: bijvoorbeeld Som, Aantal Gemiddelde.
Voorbeeld: U kunt een kruistabelquery gebruiken om het aantal abonnees per woonplaats en per type  lidmaatschap weer te geven. In de eerste kolom plaats u het veld Woonplaats, in de rij het type lidmaatschap. Op de kruispunten plaatst u het Aantal van dit type lidmaatschap.

Klik om afbeelding te vergroten

Als u deze query uitvoert dan krijgt u het volgende resultaat:

Klik om afbeelding te vergroten

U kunt zelf door slepen met de muis in de kolomkop de kolommen verplaatsen, zodat u zelf de volgorde bepalen kunt.

Partition()

Wilt u een range (gebied) in een kruistabel verwerken, bijvoorbeeld de leeftijd met een interval van 10 jaar, dan kunt u gebruik maken van de functie Partition(). Voorbeeld: de volgende code geeft de leeftijd met een interval van 10 jaar:

    Leeftijdsgroep: Partition([leeftijd];0;100;10)

U kunt dit in een Kruistabelquery bijvoorbeeld voor de Kolom gebruiken.

Het resultaat van deze kruistabelquery ziet er als volgt uit:

Draaitabellen in Access of Excel

In Access 97 en 2000 kunt u meerdere rijkoppen (de kop boven de de eerste kolommen), maar slechts één kolomkop (de kop boven de kolommen met de berekende waarden) maken. Wilt u complexere kruistabelquery's maken, bijvoorbeeld met meerdere kolomkoppen, exporteer dan de brontabel naar Excel en maak gebruik van de Draaitabellen in Excel. De Draaitabel-functie van Excel is veel uitgebreider dan de kruistabel-query functie in Access 97 en 2000. In Access 2002 en hoger kunt u wel draaitabellen maken, zonder dat u hiervoor Excel nodig heeft. Als u de database terugconverteert naar Access 2000 formaat, verdwijnen de draaitabellen.

In Access 2002 en hoger kunt u ook in Access zelf draaitabellen maken.

Terug naar homepage