Gegevens beheren met query 's

Query's uitvoeren op niet-gerelateerde gegevensbronnen

Uw browser biedt geen ondersteuning voor video. Installeer Microsoft Silverlight, Adobe Flash Player of Internet Explorer 9.

Soms moet u een query maken om gegevens op te halen uit gegevensbronnen die geen directe een-op-een- of een-op-veel-relatie hebben.

Tussenliggende tabellen gebruiken om gegevensbronnen in query 's te verbinden

Wanneer u een query uitvoert, worden in Access de relaties gebruikt die u hebt gemaakt tussen de tabellen en worden de verbindingen tussen andere gegevensbronnen afgeleid en gemaakt. Als de benodigde relatie voor een query niet bestaat, verbindt u de tabellen als onderdeel van de query.

U wilt bijvoorbeeld bekijken hoeveel orders u hebt ontvangen voor producten van verschillende leveranciers. De tabel Leveranciers is niet gekoppeld aan de tabel Inkoopordergegevens, die de product-id's en hoeveelheidsinformatie bevat. De tabel inkooporders is echter gekoppeld aan de tabel Inkoopordergegevens.

Meerdere tabelgegevensbronnen, met en zonder vooraf gedefinieerde relaties.

Tip: Als u deze relatie mogelijk nodig hebt buiten de query die u maakt, kunt u het beste een tussenliggende relatie maken die u later kunt gebruiken. Zie Veel-op-veelrelaties maken voor meer informatie hierover.

Als u geen tussenliggende tabel in uw database wilt maken, gebruikt u de tabel Inkooporders als tussenliggende tabel in uw query. Voeg de tabel Leveranciers toe aan de linkerkant van de tabel Inkooporders en maak een verbinding.

Een tabel gebruiken om twee andere tabellen indirect te verbinden

De tabel Inkooporders verbindt de twee afzonderlijke tabellen Leveranciers en Inkoopordergegevens. Verbind de tabellen met velden (zoals Id in de tabel Leveranciers en Leverancier-id in de tabel Inkooporders) die voldoen aan de volgende criteria:

  • De twee velden hebben overeenkomende of compatibele gegevenstypen. U kunt bijvoorbeeld niet een tekstveld verbinden met een numeriek veld.

  • Met de velden worden overeenkomende, unieke records in elke tabel aangegeven. U wilt bijvoorbeeld niet twee velden Achternaam verbinden omdat achternamen niet altijd uniek zijn.

  • De velden zorgen ervoor dat de juiste records worden geretourneerd. Als u bijvoorbeeld Leverancier-id verbindt met Inkoop-id, zijn er mogelijk overeenkomsten als de id's gelijk zijn. Maar de resultaten zijn niet zinvol omdat er geen verband is tussen de leverancier-id en inkoop-id. U kunt beter Id uit de tabel Leveranciers verbinden met Leverancier-id in de tabel Inkooporders. De records die worden geretourneerd zijn dan wel zinvol omdat met beide velden de leverancier wordt aangegeven.

Stappen

Voer de volgende stappen uit, ongeacht de vraag of uw database een tussenliggende tabel bevat of dat u deze alleen wilt gebruiken in uw query:

  1. Voeg de tussenliggende tabel toe aan uw query tussen de twee niet-verbonden tabellen.

  2. Maak de benodigde verbindingen met de tussenliggende tabel.

    Voor verbindingen kunnen alle geschikte typen joins worden gebruikt, maar deze moeten zijn verbonden via velden die voldoen aan de criteria die eerder in deze module zijn beschreven.

    De benodigde verbindingen met de tussenliggende tabel maken
  3. Voltooi de query.

    Volg de gebruikelijke stappen voor het maken van een query: voeg uitvoervelden toe, voeg criteria toe en voer de query uit of sla deze op. Zie Basisquery's maken voor meer informatie hierover.

    Opmerking: U hoeft de tussenliggende tabel niet op te nemen in de resultaten. Deze moet alleen deel uitmaken van de gegevensbronnen van de query, zodat de gegevens automatisch kunnen worden verbonden.

Wilt u meer zien?

Basisquery's maken

Query's maken door meerdere gegevensbronnen te koppelen

Query's maken met outer joins

Training voor Excel

Training voor Outlook

Soms moet u een query uitvoeren op tabellen of andere gegevensbronnen die niet zijn gerelateerd en die geen join delen. U hebt hiervoor twee opties.

U kunt een tussenliggende tabel gebruiken: dat wil zeggen, een tabel die joins deelt met de gegevensbronnen die u wilt gebruiken.

Of u kunt een join toevoegen.

Laten we beginnen met de tussenliggende tabel. In deze voorbeelddatabase moeten werknemers een status invoeren voor elke order, maar soms vergeten ze dit.

De vraag die u dan wilt beantwoorden is: 'Welke orders beschikken niet over een status en welke werknemers zijn vergeten de status in te voeren?'

Op het eerste gezicht lijkt het of we drie tabellen in de query moeten gebruiken: Werknemers, Orders en Orderdetailstatus, omdat deze overeenkomen met de gegevenspunten in onze vragen: 'Welke orders beschikken niet over een status en welke werknemers zijn vergeten de status in te voeren?'

Voeg de tabellen toe aan de query en u ziet dat deze twee tabellen niet zijn gekoppeld, maar dat is geen probleem, toch? We kunnen een join toevoegen.

Dus voegen we een join toe voor de id-velden, voeren de query uit en… niets.

Nu gaan we doen wat we meteen al hadden moeten doen: we kijken naar de relaties tussen de tabellen.

Als we dit doen, zien we een soort keten van relaties: Werknemers met Orders, Orders met Orderdetails en Orderdetails met Orderdetailstatus.

Orders en Orderdetailstatus zijn niet gerelateerd, maar Orderdetails is aan beide gerelateerd. Hierdoor is Orderdetails onze tussenliggende tabel.

Dit leidt tot een regel: Zolang de tussenliggende tabellen deel uitmaken van uw gegevensbron, kunt u query's in deze niet-gerelateerde tabellen uitvoeren en een geldig resultaat verkrijgen.

U hoeft de tussenliggende tabel niet op te nemen in de resultaten, maar de tabel moet wel deel uitmaken van de gegevensbron van uw query.

Dus voegen we Orderdetails toe aan de query, … houden we de velden hetzelfde … en voeren we de query uit.

We filteren op lege waarden, … en hier is het antwoord.

Nu gaan we een join toevoegen aan een query. Denk hierbij aan enkele regels.

Ten eerste moeten de tabellen of query's die u wilt koppelen, velden bevatten met overeenkomende of compatibele gegevenstypen.

De gegevenstypen Nummer en Valuta zijn bijvoorbeeld compatibel, maar Nummer en Tekst zijn dat niet.

Ten tweede bevindt de join die u maakt zich alleen in uw query. U maakt hier geen tabelrelatie.

En ten derde moeten de resultaten ergens op slaan. Als met de join bijvoorbeeld gegevens over orders en bedrijfsauto’s worden geretourneerd, moet u waarschijnlijk opnieuw beginnen.

Stel dat we willen weten welke klanten welke producten hebben besteld.

We voegen Klanten, Orders en Orderdetails toe aan een nieuwe query. Nu voegen we de join toe. We slepen klant-id uit de tabel Klanten naar het overeenkomende veld in de tabel Orders.

Hier is de join-lijn en nu hebben we een andere regel: In Access wordt het veld dat u sleept aan de linkerkant van de nieuwe join geplaatst. Als u dit niet wilt, selecteert u de join-lijn, drukt u op de toets Delete en begint u opnieuw.

Nu we dit hebben afgehandeld, kunnen we de query maken. We voegen Voornaam en Achternaam van Klanten toe, vervolgens Product-id, … Order-id, … Aantal … en Prijs per eenheid van Orderdetails.

Voer de query uit en hier zijn onze gegevens.

Nu kent u twee technieken die u kunt gebruiken wanneer u een query op niet-gerelateerde gegevensbronnen wilt uitvoeren: een tussenliggende tabel gebruiken of een join toevoegen, en de antwoorden op uw gegevensvragen worden getoond.

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-ondersteuningsagents.

×