Een query op basis van meerdere tabellen maken

Opmerking: We willen u graag zo snel mogelijk de meest recente Help-inhoud in uw eigen taal bieden. Deze pagina is automatisch vertaald en kan grammaticale fouten of onnauwkeurigheden bevatten. Wij hopen dat deze inhoud nuttig voor u is. Kunt u ons onder aan deze pagina laten weten of de informatie nuttig voor u was? Hier is het Engelstalige artikel ter referentie.

Het samenstellen en gebruiken van query's in Access is soms zo eenvoudig als het selecteren van velden in een tabel, wellicht het toepassen van een aantal criteria en vervolgens het bekijken van de resultaten. Maar wat als de gegevens zijn verdeeld over meerdere tabellen, iets wat veel vaker voorkomt? Gelukkig kunt u een query opstellen die informatie uit meerdere bronnen combineert. In dit onderwerp worden enkele scenario's beschreven waarin gegevens uit meerdere tabellen worden gehaald, en wordt uitgelegd hoe dit in zijn werk gaat.

Wat wilt u doen?

Uw query uitbreiden met gegevens uit een gerelateerde tabel

De gegevens uit twee tabellen koppelen via hun relatie met een derde tabel

Alle records uit twee vergelijkbare tabellen weergeven

Uw query uitbreiden met gegevens uit een gerelateerde tabel

Een query op basis van één tabel levert in sommige gevallen wel de benodigde informatie op, maar de resultaten zouden duidelijker en bruikbaarder worden als het resultaat ook nog bepaalde gegevens uit een andere tabel zou bevatten. Stel dat uw queryresultaat een lijst met werknemer-id's bevat. U komt er vervolgens achter dat het handiger zou zijn als ook de namen van de werknemers worden weergegeven, maar deze namen bevinden zich in een andere tabel. In dat geval moeten beide tabellen in de query worden opgenomen, zodat het queryresultaat ook de namen van de werknemers bevat.

De wizard Query gebruiken om een query te maken op basis van een primaire tabel en een gerelateerde tabel

  1. Zorg ervoor dat de tabellen een gedefinieerde relatie hebben in het venster Relaties.

    Werkwijze

    1. Ga naar het tabblad Hulpmiddelen voor databases en klik in de groep Weergeven/verbergen op Relaties.

    2. Klik op het tabblad Ontwerp in de groep Relaties op Alle relaties.

    3. Geef aan welke tabellen een gedefinieerde relatie moeten hebben.

      • Als de tabellen worden weergegeven in het venster Relaties, controleert u of er al een relatie is gedefinieerd.

        Een relatie wordt aangegeven met een lijn tussen een gemeenschappelijk veld in de twee tabellen. U kunt dubbelklikken op een relatielijn om te zien welke velden in de tabellen met elkaar zijn verbonden door de relatie.

      • Als de tabellen niet zichtbaar zijn in het venster Relaties, moet u ze toevoegen.

        Klik op het tabblad Ontwerpen in de groep Weergeven/verbergen op Tabelnamen.

        Dubbelklik op elk van de tabellen die u wilt weergeven en klik vervolgens op Sluiten.

    4. Als u geen relatie ziet tussen de twee tabellen, kunt u een relatie maken door een veld in een van de tabellen naar een veld in de andere tabel te slepen. De velden op basis waarvan de relatie tussen de tabellen wordt gemaakt, moeten hetzelfde gegevenstype hebben.

      Opmerking: Het is mogelijk een relatie tot stand te brengen tussen een veld met het gegevenstype gegevenstype AutoNumber en een veld met het gegevenstype gegevenstype Getal, maar alleen als de eigenschap Veldlengte voor beide velden is ingesteld op Lange integer. Dit is vaak het geval wanneer u een een-op-veel-relatie maakt.

      Het dialoogvenster Relaties bewerken wordt geopend.

    5. Klik op Maken om de relatie te maken.

      Zie het artikel Een relatie maken, bewerken of verwijderen voor meer informatie over de opties die u kunt kiezen als u een relatie gaat maken.

    6. Sluit het venster Relaties.

  2. Klik op het tabblad Maken in de groep Query's op Wizard Query

  3. Klik in het dialoogvenster Nieuwe query op Wizard Selectiequery en klik op OK.

  4. Klik in de keuzelijst met invoervak Tabellen/query's op de tabel die de basisinformatie bevat die u wilt opnemen in uw query.

  5. Klik in de lijst Beschikbare velden op het eerste veld dat u wilt opnemen in de query en klik vervolgens op de knop met de pijl-rechts om dat veld te verplaatsen naar de lijst Geselecteerde velden. Herhaal dit voor elk tabelveld dat u wilt opnemen in uw query. Dit kunnen velden zijn die u in het queryresultaat wilt weergeven, of velden waarmee u het aantal rijen in het queryresultaat wilt beperken door criteria toe te passen.

  6. Klik in de keuzelijst Tabellen/query's op de tabel die de gerelateerde gegevens bevat die u wilt gebruiken om uw queryresultaat uit te breiden.

  7. Voeg de velden waarmee u het queryresultaat wilt uitbreiden toe aan de lijst Geselecteerde velden en klik vervolgens op Volgende.

  8. Klik onder Wilt u een detailquery of een totalenquery? op Details of op Totalen.

    Kies een detailquery als u niet wilt dat er statistische functies door de query worden uitgevoerd (Som, Gem, Min, Max, Aantal, StDev of Var). Kies een totalenquery als u wel wilt dat er een statistische functie door de query wordt uitgevoerd. Klik op Volgende als u een keuze hebt gemaakt.

  9. Klik op Voltooien om het resultaat te bekijken.

Een voorbeeld waarin de voorbeelddatabase Noordenwind wordt gebruikt

In het volgende voorbeeld gebruikt u de wizard Query om een query op te stellen voor het weergeven van een lijst met orders, de vrachtkosten voor elke order, en de naam van de werknemer die elke order heeft behandeld.

Opmerking: Door het uitvoeren van dit voorbeeld wordt de voorbeelddatabase Noordenwind gewijzigd. Het is dan ook raadzaam een back-up van de voorbeelddatabase Noordenwind te maken en hier de back-up te gebruiken.

De query maken met de wizard Query

  1. Open de voorbeelddatabase Noordenwind. Sluit het aanmeldingsvenster.

  2. Klik op het tabblad Maken in de groep Query's op Wizard Query

  3. Klik in het dialoogvenster Nieuwe query op Wizard Selectiequery en klik op OK.

  4. Klik in de keuzelijst Tabellen/query's op Tabel: Orders.

  5. Ga naar de lijst Beschikbare velden en dubbelklik op Order-id om dat veld te verplaatsen naar de lijst Geselecteerde velden. Dubbelklik op Verzendkosten en om ook dat veld naar de lijst Geselecteerde velden te verplaatsen.

  6. Klik in de keuzelijst Tabellen/query's op Tabel: Werknemers.

  7. Ga naar de lijst Beschikbare velden en dubbelklik op Voornaam om dat veld te verplaatsen naar de lijst Geselecteerde velden. Dubbelklik op Achternaam en om ook dat veld naar de lijst Geselecteerde velden te verplaatsen. Klik op Volgende.

  8. U wilt een lijst maken van alle orders en daarom kiest u een detailquery. Als u bijvoorbeeld de verzendkosten per werknemer wilt optellen of een andere statistische functie wilt gebruiken, kiest u een totalenquery. Klik op Details (alle velden van alle records weergeven) en klik op Volgende.

  9. Klik op Voltooien om het resultaat te bekijken.

De query geeft als resultaat een lijst met orders, elk met de verzendkosten en de voor- en achternaam van de werknemer die de order heeft behandeld.

Naar boven

De gegevens uit twee tabellen koppelen via hun relatie met een derde tabel

Gegevens in twee tabellen zijn vaak aan elkaar gerelateerd via een derde tabel. Dit is meestal het geval wanneer de gegevens in de eerste twee tabellen zijn gerelateerd in een veel-op-veel-relatie. Over het algemeen is het een goede gewoonte om bij het ontwerpen van een database een veel-op-veel-relatie tussen twee tabellen te splitsen in twee een-op-veel-relaties waarbij drie tabellen zijn betrokken. U doet dit door een derde tabel te maken, de verbindings- of relatietabel genaamd, die een primaire sleutel en een refererende sleutel voor elk van de andere tabellen heeft. Er wordt dan een een-op-veel-relatie gemaakt tussen elke refererende sleutel in de verbindingstabel en de corresponderende primaire sleutel van een van de andere tabellen. In dergelijke gevallen moet u alle drie de tabellen opnemen in uw query, ook als u alleen gegevens wilt ophalen uit twee van de tabellen.

Een selectiequery maken op basis van tabellen met een veel-op-veel-relatie

  1. Klik op het tabblad Maken in de groep Query's op Queryontwerp

    Het dialoogvenster Tabel weergeven wordt geopend.

  2. Dubbelklik in het dialoogvenster Tabel weergeven op de twee tabellen die de gegevens bevatten die u wilt opnemen in uw query en op de verbindingstabel via welke ze met elkaar zijn verbonden. Klik vervolgens op Sluiten.

    Alle drie de tabellen worden weergegeven in de ontwerpwerkruimte van de query en zijn via de juiste velden met elkaar verbonden.

  3. Dubbelklik op elk veld dat u wilt gebruiken in uw queryresultaten. Elk veld wordt vervolgens weergegeven in het ontwerpraster van de query.

  4. Gebruik in het ontwerpraster van de query de rij Criteria om veldcriteria in te voeren. Als u een veldcriterium wilt gebruiken zonder het veld in het queryresultaat weer te geven, moet u het selectievakje voor dat veld in de rij Weergeven uitschakelen.

  5. Als u de resultaten wilt sorteren aan de hand van de waarden in een veld, klikt u in het ontwerpraster van de query op Oplopend of Aflopend (afhankelijk van de gewenste sorteervolgorde) in de rij Sorteervolgorde van dat veld.

  6. Ga naar het tabblad Ontwerpen en klik in de groep Resultaten op Uitvoeren.

    Het queryresultaat wordt weergegeven in de gegevensbladweergave.

Een voorbeeld waarin de voorbeelddatabase Noordenwind wordt gebruikt

Opmerking: Door het uitvoeren van dit voorbeeld wordt de voorbeelddatabase Noordenwind gewijzigd. Het is dan ook raadzaam een back-up van de voorbeelddatabase Noordenwind te maken en hier de back-up te gebruiken.

Stel dat u hebt een nieuwe verkoopkans: een leverancier in Rio de Janeiro uw website heeft gevonden en mogelijk wilt u zaken doet. Echter werken ze alleen in Rio en São Paulo. Ze leveren elke productcategorie van de levensmiddelen waarin u handelt. Ze een vrij groot bedrijf zijn, en wilt uw garanties dat u ze toegang tot voldoende potentiële verkopen bieden kunt zodat u deze handig: ten minste R$ 20,000.00 per jaar in de verkoop (over $9,300.00). Kunt u deze met de markt die zij nodig hebben opgeeft?

De gegevens die u nodig hebt om deze vraag te beantwoorden op twee plaatsen vinden: een klantentabel en een tabel Orderdetails. Deze tabellen zijn gekoppeld aan elkaar grenzen door de ordertabel. Relaties tussen de tabellen zijn al gedefinieerd. Elke order kan slechts één klant, gerelateerd aan de tabel Klanten in het veld CustomerID hebben in de tabel Orders. Elke record in de tabel Orderdetails is gekoppeld aan slechts één volgorde in de tabel Orders, klikt u op het veld OrderID. Een bepaalde klant kan dus meerdere orders, die allemaal veel details van bestelling hebben.

In dit voorbeeld bouwt u een kruistabelquery op waardoor de totale omzet per jaar in de steden Rio de Janeiro en São Paulo wordt weergegeven.

De query maken in de ontwerpweergave

  1. Open de voorbeelddatabase Noordenwind. Sluit het aanmeldingsvenster.

  2. Klik op het tabblad Maken in de groep Query's op Queryontwerp

    Het dialoogvenster Tabel weergeven wordt geopend.

  3. Dubbelklik in het dialoogvenster Tabel weergeven op Klanten, Orders en Detailgegevens orders en klik vervolgens op Sluiten.

    Alle drie de tabellen worden weergegeven in de ontwerpwerkruimte van de query.

  4. Dubbelklik in de tabel Klanten op het veld Plaats om dit veld aan het queryontwerpraster toe te voegen.

  5. Typ in het queryontwerpraster, in de kolom Plaats, in de rij Criteria de tekst In ("Rio de Janeiro","São Paulo"). Hierdoor worden alleen de records in de query opgenomen met klanten in een van deze twee plaatsen.

  6. Dubbelklik in de tabel Orders op de velden Leverdatum en PrijsPerEenheid.

    De velden worden toegevoegd aan het queryontwerpraster.

  7. Selecteer in de kolom Leverdatum in het ontwerpraster de rij Veld. Vervang [Leverdatum] door Jaar: Format([Leverdatum],"yyyy"). Hiermee maakt u een veldalias, Jaar, zodat u het jaartal uit de waarde van het veld Leverdatum afzonderlijk kunt gebruiken.

  8. Selecteer in de kolom PrijsPerEenheid in het queryontwerpraster de rij Veld. Vervang [PrijsPerEenheid] door Omzet: [Detailgegevens order].[PrijsPerEenheid]*[Hoeveelheid]-[Detailgegevens order].[PrijsPerEenheid]*[Hoeveelheid]*[Korting]. Zo maakt u een veldalias, Omzet, waarin voor elke record de omzet wordt berekend.

  9. Klik op het tabblad Ontwerpen in de groep Querytype op Kruistabel.

    In het queryontwerpraster worden twee nieuwe rijen weergegeven, Totaal en Kruistabel.

  10. Klik in de kolom Plaats in het queryontwerpraster op de rij Kruistabel en klik vervolgens op Rijkop.

    Hierdoor worden de waarden van Plaats als rijkop weergegeven, dat wil zeggen: de query geeft één rij voor elke plaats als resultaat.

  11. Klik in de kolom Jaar op de rij Kruistabel en klik vervolgens op Kolomkop.

    Hierdoor worden de waarden van Jaar als kolomkop weergegeven, dat wil zeggen: de query geeft één kolom voor elk jaar als resultaat.

  12. Klik in de kolom Omzet op de rij Kruistabel en klik vervolgens op Waarde.

    Hierdoor wordt op elk snijpunt van een rij met de kolom een waarde weergegeven, dat wil zeggen: de query geeft één omzetwaarde als resultaat voor elke combinatie van Plaats en Jaar.

  13. Klik in de kolom Omzet op de rij Totalen en klik vervolgens op Som.

    Daarmee geeft de query in deze kolom de som van de waarden.

    U kunt de rij Totalen voor de twee andere rijen op de standaardwaarde Groeperen op laten staan, want u wilt van deze kolommen elke waarde zien, niet de cumulatieve waarde.

  14. Ga naar het tabblad Ontwerp en klik in de groep Resultaten op Uitvoeren.

U hebt nu een query die de totale omzet per jaar in Rio de Janeiro en São Paulo retourneert.

Naar boven

Alle records uit twee vergelijkbare tabellen weergeven

Soms wilt u gegevens combineren uit twee tabellen die een identieke structuur hebben, terwijl een van deze tabellen zich in een andere database bevindt. Kijk eens naar het volgende scenario.

U bent analist en u werkt met leerlinggegevens. U doet mee aan een initiatief voor gegevensuitwisseling tussen uw school en een andere school, zodat beide scholen hun leerplan kunnen verbeteren. Voor sommige vraagstukken die u wilt onderzoeken, zou het handiger zijn als u alle records van beide scholen gezamenlijk zou kunnen bekijken, in plaats van de records van elke school afzonderlijk.

U kunt van de andere school-gegevens importeren in nieuwe tabellen in uw database, maar klikt u vervolgens alle wijzigingen in de gegevens van de andere school niet doorgevoerd in uw database. Een betere oplossing zou zijn om te koppelen aan de andere school tabellen en query's die de gegevens worden gecombineerd, wanneer u deze uitvoert vervolgens te maken. U zou kunnen de gegevens als één instellen, in plaats van resultaten en interpreteren ze alsof ze één wilt analyseren.

Als u alle records uit twee tabellen met een identieke structuur wilt weergeven, kunt u een samenvoegquery gebruiken.

Samenvoegquery's kunnen niet worden weergegeven in de ontwerpweergave. U stelt een samenvoegquery op met behulp van SQL-opdrachten die u invoert in een objecttabblad van de SQL-weergave.

Een samenvoegquery maken met twee tabellen

  1. Klik op het tabblad Maken in de groep Query's op Queryontwerp

    Er wordt een ontwerpraster voor een nieuwe query geopend en het dialoogvenster Tabel weergeven wordt weergegeven.

  2. Klik in het dialoogvenster Tabel weergeven op Sluiten.

  3. Klik op het tabblad Ontwerpen in de groep Type query op Samenvoegquery.

    De query schakelt over van de ontwerpweergave naar de SQL-weergave. In dit stadium is het objecttabblad van de SQL-weergave leeg.

  4. Typ SELECT in de SQL-weergave, gevolgd door de namen van de velden uit de eerste tabel die u in de query wilt opnemen. Typ veldnamen tussen vierkante haken, gescheiden door komma's. Druk op Enter als u klaar bent met het typen van de veldnamen. De cursor gaat één regel omlaag in de SQL-weergave.

  5. Typ FROM, gevolgd door de naam van de eerste tabel die u wilt opnemen in de query. Druk op Enter.

  6. Als u een criterium opgeven voor een veld uit de eerste tabel wilt, typ waar, gevolgd door de naam van het veld, een vergelijkingsoperator (meestal een gelijkteken (=)) en het criterium. U kunt aanvullende criteria toevoegen aan het einde van de WHERE-component met behulp van het trefwoord en en dezelfde syntaxis gebruikt voor het eerste criterium; bijvoorbeeld, waarin [Klas] = '100' en [Studiepunten] >2. Wanneer u klaar bent met opgeven van criteria, drukt u op ENTER.

  7. Typ UNION en druk op Enter.

  8. Typ SELECT, gevolgd door een lijst met de velden uit de tweede tabel die u in de query wilt opnemen. Neem dezelfde velden op als uit de eerste tabel en in dezelfde volgorde. Typ veldnamen tussen vierkante haken, gescheiden door komma's. Druk op Enter als u klaar bent met het typen van de veldnamen.

  9. Typ FROM, gevolgd door de naam van de tweede tabel die u wilt opnemen in de query. Druk op Enter.

  10. U kunt eventueel een WHERE-component toevoegen, zoals beschreven in stap 6 van deze procedure.

  11. Typ een puntkomma (;) om het einde van de query aan te geven.

  12. Ga naar het tabblad Ontwerpen en klik in de groep Resultaten op Uitvoeren.

    De resultaten van de query worden weergegeven in de gegevensbladweergave.

Naar boven

Zie ook

Tabellen en query's koppelen

Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagenten.

×