Tabelrelaties gebruiken
Van toepassing op
Access voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Een van de doelstellingen van een goed databaseontwerp is het verwijderen van gegevensredundantie (dubbele gegevens). Als u dat doel wilt bereiken, verdeelt u de gegevens in veel op onderwerp-gebaseerde tabellen, zodat elk feit slechts eenmaal wordt gerepresenteerd. Vervolgens geeft u Access een manier om de verdeelde informatie weer samen te brengen. U doet dit door algemene velden in gerelateerde tabellen te plaatsen. Als u deze stap correct uitvoert, moet u de relaties begrijpen tussen tabellen, en deze vervolgens opgeven in uw database.

In dit artikel

Inleiding

Nadat u voor elk onderwerp in de database een tabel hebt gemaakt, moet u Access een manier geven om die informatie weer samen te brengen wanneer dat nodig is. U doet dit door gemeenschappelijke velden in gerelateerde tabellen te plaatsen en relaties tussen de tabellen te definiëren. Vervolgens kunt u query's, formulieren en rapporten maken waarin gegevens uit verschillende tabellen tegelijkertijd worden weergegeven. Het volgende formulier bijvoorbeeld bevat gegevens uit diverse tabellen:

Het formulier Orders waarin gerelateerde gegevens uit vijf tabellen tegelijk worden weergegeven

1. De gegevens in dit formulier zijn afkomstig uit de tabel Klanten...

2. ...de tabel Orders...

3. ...de tabel Producten...

4. ...en de tabel Ordergegevens.

De klantnaam in het vak Factuur naar wordt opgehaald uit de tabel Klanten, de waarden voor de order-id en orderdatum uit de tabel Orders, de productnaam komt uit de tabel Producten en de waarden voor de prijs per eenheid en hoeveelheid uit de tabel Detailgegevens order. Deze tabellen zijn op allerlei manieren aan elkaar gekoppeld zodat gegevens uit elke tabel kan worden weergegeven op het formulier.

In het vorige voorbeeld moeten de velden in de tabellen bij elkaar staan, zodat ze informatie over dezelfde orde weergeven. Deze coördinatie wordt behaald met behulp van relaties tussen tabellen. Een tabelrelatie werkt met overeenkomende gegevens in de sleutelvelden - vaak een veld met dezelfde naam in beide tabellen. In de meeste gevallen zijn deze velden overeenkomende de primaire sleutel uit één tabel, met een unieke identifier voor elke record, en een refererende sleutel in een andere tabel. Werknemers kunnen bijvoorbeeld worden gekoppeld aan orders waarvoor ze verantwoordelijk zijn met het maken van een tabelrelatie tussen de werknemer-id-velden in de tabellen Werknemers en Orders.

Het veld Werknemer-id, dat wordt gebruikt als primaire sleutel in de tabel Werknemers en als refererende sleutel in de tabel Orders.

1. Werknemer-id komt in beide tabellen voor als primaire sleutel...

2. ...en als externe sleutel.

Boven aan pagina

Typen tabelrelaties

Er zijn drie typen tabelrelaties in Access.

  • Een-op-veel-relaties

    Laten we een database voor het bijhouden van orders gebruiken die als voorbeeld een tabel Klanten en een tabel Orders bevat. Een klant kan een willekeurig aantal orders plaatsen. Dat betekent dat er voor elke klant in de tabel Klanten veel orders in de tabel Orders kunnen staan. De relatie tussen de tabel Klanten en de tabel Orders is dus een een-op-veel-relatie.

    Als u een een-op-veel-relatie wilt weergeven in het databaseontwerp, neemt u de primaire sleutel van de 'een'-kant van de relatie en voegt u deze als extra veld(en) toe aan de tabel aan de 'veel'-kant van de relatie. In dit geval voegt u bijvoorbeeld een nieuw veld (het veld Id uit de tabel Klanten) toe aan de tabel Orders. Access kunt vervolgens het klant-id-nummer in de tabel Orders gebruiken om de juiste klant voor elke bestelling te vinden.

  • Veel-op-veel-relaties

    Laten we nu eens kijken naar de relatie tussen een tabel Producten en een tabel Orders. Eén order kan meer dan één product bevatten. Anderzijds kan één product voorkomen in veel orders. Daarom kan de tabel Producten veel records bevatten voor elke record in de tabel Orders. Bovendien kan de tabel Orders voor elke record in de tabel Producten veel records bevatten. Deze relatie wordt een veel-op-veel-relatie genoemd. Als u bestaande veel-op-veel-relaties tussen tabellen wilt opsporen, moet u letten op beide zijden van de relatie.

    Om een veel-op-veel-relatie weer te geven, maakt u een derde tabel aan, ook wel een verbindingstabel genoemd, die de veel-op-veel-relatie splitst in twee één-op-veel-relaties. U voegt de primaire sleutel uit elk van de twee tabellen toe aan de derde tabel. Op die manier wordt in de derde tabel elke instantie van de relatie vastgelegd. De tabel Orders en de tabel Producten hebben bijvoorbeeld een veel-op-veel-relatie die is gedefinieerd door twee één-op-veel-relaties in de tabel Ordergegevens te maken. Elke order kan meerdere producten bevatten, en elk product kan voorkomen in een groot aantal orders.

  • Een-op-een-relaties

    In een een-op-een-relatie heeft elke record in de eerste tabel maar één overeenkomstige record in de tweede tabel, terwijl elke record in de tweede tabel ook maar één overeenkomstige record in de eerste tabel heeft. Deze relatie komt niet veel voor omdat gegevens met een dergelijke relatie doorgaans in dezelfde tabel worden opgeslagen. U zou een een-op-een-relatie kunnen gebruiken om een tabel met veel velden op te splitsen, een deel van een tabel om veiligheidsredenen te isoleren of informatie op te slaan die alleen op een gedeelte van de hoofdtabel van toepassing is. Wanneer u een dergelijke relatie definieert, moeten beide tabellen een veld gemeenschappelijk hebben.

Boven aan pagina

Waarom zou u tabelrelaties maken?

U kunt tabelrelaties expliciet maken in het venster Relaties of door een veld uit het deelvenster Lijst met velden te slepen. Access gebruikt tabelrelaties om te bepalen hoe u tabellen wilt koppelen wanneer u ze in een databaseobject wilt gebruiken. Er zijn verschillende redenen waarom u beter eerst tabelrelaties en dan pas andere databaseobjecten kunt maken, zoals formulieren, query's en rapporten.

  • Tabelrelaties bevatten informatie voor uw queryontwerpen

    Als u met records uit meer dan één tabel werkt, moet u vaak een query maken waarmee de tabellen worden samengevoegd. Met de query worden de waarden in het primaire-sleutelveld van de eerste tabel gekoppeld aan de overeenkomstige waarde in een refererende-sleutelveld in de tweede tabel. Als u bijvoorbeeld rijen als resultaat wilt geven die alle orders voor elke klant bevatten, maakt u een query waarmee de tabel Klanten op basis van het veld Klant-id wordt gekoppeld aan de tabel Orders. In het venster Relaties kunt u handmatig opgeven welke velden u wilt koppelen. Maar als u al een relatie hebt gedefinieerd tussen de tabellen, levert Access de standaard join op basis van de bestaande tabelrelatie. Als u bovendien een van de querywizards gebruikt, gebruikt Access de informatie die wordt verzameld uit de tabelrelaties die u al hebt gedefinieerd, om u geïnformeerde keuzes te bieden en om eigenschapsinstellingen vooraf in te vullen met de juiste standaardwaarden.

  • Tabelrelaties bevatten informatie voor uw formulier- en rapportontwerpen

    Wanneer u een formulier of rapport ontwerpt, gebruikt Access de informatie die wordt verzameld uit de tabelrelaties die u al hebt gedefinieerd, om u geïnformeerde keuzes te bieden en om eigenschapsinstellingen vooraf in te vullen met de juiste standaardwaarden.

  • Op basis van tabelrelaties kunt u referentiële integriteit afdwingen om niet-gekoppelde records in een database te helpen voorkomen. Een niet-gekoppelde record is een record die verwijst naar een andere niet-bestaande record, bijvoorbeeld een orderrecord die verwijst naar een niet-bestaande klantrecord.

    Wanneer u een database ontwerpt, verdeelt u uw gegevens over tabellen die allemaal een primaire sleutel bevatten. Daarna voegt u aan gerelateerde tabellen refererende sleutels toe die naar deze primaire sleutels verwijzen. Deze combinatie van primaire en refererende sleutel vormt de basis van tabelrelaties en query's voor meerdere tabellen. Het is belangrijk dat deze refererende sleutel-primaire sleutelverwijzingen gesynchroniseerd blijven. Referentiële integriteit is afhankelijk van tabelrelaties en zorgt ervoor dat verwijzingen gesynchroniseerd blijven.

Naar boven

Referentiële integriteit

Wanneer u een database ontwerpt, verdeelt u uw databasegegevens over verschillende tabellen op basis van het onderwerp om dubbele gegevens tot een minimum te beperken. Vervolgens geeft u Access een manier om de gegevens weer samen te brengen door algemene velden in gerelateerde tabellen te plaatsen. Als u bijvoorbeeld een een-op-veel-relatie wilt weergeven, neemt u de primaire sleutel uit de 'een'-tabel en voegt u deze als extra veld toe aan de 'veel'-tabel. Als u de gegevens weer bij elkaar wilt brengen, neemt Access de waarde in de tabel 'veel' en zoekt de bijbehorende waarde op in de tabel 'één'. Zodoende verwijzen de waarden in de 'veel'-tabel naar de overeenkomende waarden in de 'een'-tabel.

Stel dat u een een-op-veel-relatie tussen Verzenders en Orders hebt en u een verzender wilt verwijderen. Als de verzender die u wilt verwijderen orders in de tabel Orders heeft, worden deze orders niet-gekoppelde records als u de Verzender-record verwijdert. De orders bevatten nog wel een verzender-id, maar deze is niet meer geldig omdat de bijbehorende record niet meer bestaat.

Referentiële integriteit is bedoeld om niet-gekoppelde records te voorkomen en verwijzingen gesynchroniseerd te houden zodat deze hypothetische situatie niet kan voorkomen.

U dwingt referentiële integriteit af door deze optie in te schakelen voor een tabelrelatie. Zodra dit is afgedwongen, weigert Access elke bewerking die referentiële integriteit voor die tabelrelatie schendt. Dit betekent dat Access zowel updates die het doel van een verwijzing wijzigen als verwijderingen waarmee het doel van een verwijzing wordt verwijderd, worden geweigerd. Het is mogelijk dat u een perfect geldige behoefte hebt om de primaire sleutel te wijzigen voor een verzender die orders in de tabel Orders heeft. In dergelijke gevallen hebt u echt nodig dat Access alle doorgevoerde rijen automatisch bijwerkt als onderdeel van één bewerking. Op die manier zorgt Access ervoor dat de update volledig wordt voltooid, zodat uw database niet in een inconsistente status blijft, waarbij sommige rijen worden bijgewerkt en andere niet. Daarom ondersteunt Access de optie Gerelateerde velden trapsgewijs bijwerken . Wanneer u referentiële integriteit afdwingt en de optie Gerelateerde velden trapsgewijs bijwerken kiest en u vervolgens een primaire sleutel bijwerkt, Access automatisch alle velden bijwerken die naar de primaire sleutel verwijzen.

Het is ook mogelijk dat u een volstrekt geldige reden hebt om een rij en alle daaraan gerelateerde records te verwijderen, bijvoorbeeld een Verzender-record met alle gerelateerde orders voor deze verzender. Daarom ondersteunt Access de optie Gerelateerde records trapsgewijs verwijderen . Wanneer u referentiële integriteit afdwingt en de optie Gerelateerde records trapsgewijs verwijderen kiest en u vervolgens een record aan de primaire-sleutelzijde van de relatie verwijdert, verwijdert Access automatisch alle records die verwijzen naar de primaire sleutel.

Naar boven

Tabelrelaties weergeven

Klik op het tabblad Hulpmiddelen voor databases op Relaties als u de tabelrelaties wilt weergeven. Het venster Relaties wordt geopend en alle bestaande relaties worden weergegeven. Als er geen tabelrelaties zijn gedefinieerd en u het venster Relaties voor het eerst opent, wordt u Access gevraagd een tabel of query aan het venster toe te voegen.

Het venster Relaties openen

  1. Klik op Bestand, klik op Openen en selecteer en open de database.

  2. Klik op het tabblad Hulpmiddelen voor databases in de groep Relaties op Relaties.

  3. Klik op het tabblad Relaties ontwerpen in de groep Relaties op Alle relaties.Hiermee worden alle gedefinieerde relaties in uw database weergegeven. Verborgen tabellen (tabellen waarvoor het selectievakje Verborgen is ingeschakeld in het dialoogvenster Eigenschappen van de tabel) en de bijbehorende relaties worden niet weergegeven, tenzij het selectievakje Verborgen objecten weergeven is ingeschakeld in het dialoogvenster Navigatieopties.

Een tabelrelatie wordt voorgesteld met een relatielijn tussen tabellen in het venster Relaties. Een relatie waarvoor geen referentiële integriteit is afgedwongen, wordt aangeduid met een dunne lijn tussen de gemeenschappelijke velden die de relatie ondersteunen. Wanneer u de relatie selecteert door op de lijn te klikken, wordt de lijn dikker om aan te geven dat de relatie is geselecteerd. Als u voor deze relatie referentiële integriteit afdwingt, wordt de lijn aan beide uiteinden dikker. Bovendien staat het getal 1 boven het dikke gedeelte van de lijn aan de ene zijde van de relatie en het oneindigheidssymbool (8) boven het dikke gedeelte aan het andere uiteinde van de lijn.

Wanneer het venster Relaties actief is, zijn de volgende opdrachten beschikbaar op het lint:

Ga op het tabblad Relaties ontwerpen naar de groep Extra :

  • Relaties bewerken Hiermee opent u het dialoogvenster Relaties bewerken. Wanneer u een relatielijn selecteert, kunt u op Relaties bewerken klikken om de tabelrelatie te wijzigen. U kunt ook op de relatielijn dubbelklikken.

  • Indeling wissen Hiermee wist u alle tabellen en relaties uit het venster Relaties. Hiermee verbergt u de tabellen en relaties alleen, u verwijdert deze niet daadwerkelijk.

  • Rapport Relaties Hiermee maakt u een rapport dat de tabellen en relaties in de database weergeeft. Het rapport bevat alleen de tabellen en relaties die in het venster Relaties niet zijn verborgen.

Ga op het tabblad Relatiesontwerp naar de groep Relaties :

  • Tabellen toevoegen    Hiermee kunt u de selectie van tabellen weergeven in het venster Relaties.

  • Tabel verbergen Hiermee verbergt u de geselecteerde tabel in het venster Relaties.

  • Rechtstreekse relaties Hiermee geeft u alle relaties en gerelateerde tabellen voor de geselecteerde tabel in het venster Relaties weer als deze nog niet worden weergegeven.

  • Alle relaties Hiermee geeft u alle relaties en gerelateerde tabellen in de database in het venster Relaties weer. Verborgen tabellen (tabellen waarvoor het selectievakje Verborgen is ingeschakeld in het dialoogvenster Eigenschappen van de tabel) en de bijbehorende relaties worden alleen weergegeven als in het dialoogvenster Navigatieopties de optie Verborgen objecten weergeven is ingeschakeld.

  • Sluiten Hiermee sluit u het venster Relaties. Als u de indeling van het venster Relaties hebt gewijzigd, wordt u gevraagd of u deze wijzigingen wilt opslaan.

Naar boven

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.