Office
Aanmelden
Tabelrelaties gebruiken

Tabelrelaties gebruiken

Een goed databaseontwerp is onder andere bedoeld om overbodige (dubbele) gegevens te verwijderen. Als u dit doel wilt bereiken, verdeelt u uw gegevens in allerlei tabellen op basis van onderwerp zodat elk feit slechts eenmaal voorkomt. Vervolgens biedt u Access de mogelijkheid om de verdeelde gegevens weer met elkaar te verbinden. Daarvoor plaatst u gemeenschappelijke velden in gerelateerde tabellen. U kunt deze stap correct uitvoeren als u de relaties tussen tabellen begrijpt en deze relaties vervolgens opgeeft in uw database.

In dit artikel

Inleiding

Typen tabelrelaties

Waarom zou u tabelrelaties maken?

Referentiële integriteit

Tabelrelaties weergeven

Een tabelrelatie maken

Een tabelrelatie verwijderen

Een tabelrelatie wijzigen

Referentiële integriteit afdwingen

Inleiding

Nadat u een tabel hebt gemaakt voor elk onderwerp in de database, moet u Access de mogelijkheid bieden om gegevens zo nodig weer te kunnen samenvoegen. 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 voorgaande voorbeeld moeten de velden in de tabellen op elkaar worden afgestemd zodat ze de gegevens over dezelfde order bevatten. Dit doet u met behulp van tabelrelaties. Een tabelrelatie is gebaseerd op overeenkomsten tussen gegevens in sleutelvelden. Dikwijls is dat een veld dat in beide tabellen dezelfde naam heeft. Deze velden zijn in de ene tabel meestal de primaire sleutel (een unieke id voor elke record) en in de andere tabel een externe sleutel. Zo kunt u een verband leggen tussen werknemers en de orders waarvoor ze verantwoordelijk zijn, door een tabelrelatie te definiëren tussen de velden Werknemer-id 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.

Naar boven

Typen tabelrelaties

Er zijn drie typen tabelrelaties in Access.

  • Een-op-veel-relaties

    Stel dat u een orderdatabase met een tabel Klanten en een tabel Orders hebt. 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 kan vervolgens de klant-id in de tabel Orders gebruiken om de juiste klant voor elke order te vinden.

  • Veel-op-veel-relaties

    Stel dat er een relatie bestaat tussen een tabel Producten en een tabel Orders. Eén order kan meer dan één product bevatten. Anderzijds kan een 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.

    Als u een veel-op-veel-relatie wilt weergeven, moet u een derde tabel maken, vaak een verbindingstabel genoemd. Hiermee wordt de veel-op-veel-relatie opgesplitst in twee een-op-veel-relaties. U plaatst de primaire sleutel uit beide tabellen in de derde tabel. De derde tabel registreert bijgevolg elk exemplaar (instantie) van de relatie. Zo hebben de tabel Orders en de tabel Producten bijvoorbeeld een veel-op-veel-relatie die is gedefinieerd door twee een-op-veel-relaties met de tabel Ordergegevens te maken. Eén order kan veel producten bevatten en elk product kan in veel orders voorkomen.

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

Naar boven

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. Aan de hand van tabelrelaties worden tabellen in Access gekoppeld wanneer u deze nodig hebt in een databaseobject. 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. Als u echter al een relatie tussen de tabellen hebt gedefinieerd, wordt in Access de standaardjoin weergegeven, die op de bestaande tabelrelatie is gebaseerd. Als u met een van de querywizards werkt, worden in Access bovendien gegevens gebruikt uit de reeds gedefinieerde tabelrelaties om u zinvolle keuzes te bieden en instellingen van eigenschappen op voorhand te vullen met relevante standaardwaarden.

  • Tabelrelaties bevatten informatie voor uw formulier- en rapportontwerpen

    Wanneer u een formulier of rapport ontwerpt, worden in Access de gegevens over de reeds gedefinieerde tabelrelaties gebruikt om u zinvolle keuzes te bieden en instellingen van eigenschappen op voorhand te vullen met relevante 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 verwijzingen tussen refererende en primaire sleutels 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 plaatst u gemeenschappelijke velden in gerelateerde tabellen om Access een mogelijkheid te bieden om de gegevens weer aan elkaar te koppelen. 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 aan elkaar wilt koppelen, wordt in Access de waarde in de 'veel'-tabel gebruikt en daarbij de overeenkomende waarde in de 'een'-tabel gezocht. 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 voor een tabelrelatie in te schakelen (zie Referentiële integriteit afdwingen voor stapsgewijze aanwijzingen). Wanneer deze optie is ingeschakeld, worden in Access alle bewerkingen geweigerd die in strijd zijn met de referentiële integriteit van de betreffende tabelrelatie. Dat betekent dat Access zowel updates waarmee het doel van een verwijzing wordt gewijzigd als verwijderingen waarmee het doel van een verwijzing wordt verwijderd weigert. Het is mogelijk dat u een volstrekt geldige reden hebt om de primaire sleutel te wijzigen voor een verzender die orders in de tabel Orders heeft. In die gevallen zouden in Access eigenlijk alle betrokken rijen via één bewerking moeten kunnen worden bijgewerkt. Access voert de update dan volledig uit zodat de database niet wordt achtergelaten in een inconsistente toestand, waarbij sommige rijen wel en andere rijen niet zijn bijgewerkt. Daarom wordt in Access de optie Gerelateerde velden trapsgewijs bijwerken ondersteund. Als u een primaire sleutel bijwerkt terwijl referentiële integriteit wordt afgedwongen en u de optie Gerelateerde velden trapsgewijs bijwerken hebt ingeschakeld, worden in Access automatisch alle velden bijgewerkt 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 wordt in Access de optie Gerelateerde records trapsgewijs verwijderen ondersteund. Als u een record aan de kant van de primaire sleutel van de relatie verwijdert terwijl referentiële integriteit wordt afgedwongen en u de optie Gerelateerde records trapsgewijs verwijderen hebt ingeschakeld, worden in Access automatisch alle records verwijderd die naar de primaire sleutel verwijzen.

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, vraagt Access of u een tabel of query aan het venster wilt toevoegen.

Het venster Relaties openen

  1. Klik op Bestand en klik vervolgens op Openen.

  2. Selecteer en open de database.

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

    Als de database relaties bevat, wordt het venster Relaties geopend. Als de database geen relaties bevat en u het venster Relaties voor het eerst opent, wordt het dialoogvenster Tabel weergeven geopend. Klik op Sluiten om het dialoogvenster te sluiten.

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

    Alle gedefinieerde relaties in de database worden 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:

Op het tabblad Ontwerpen, in 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.

Op het tabblad Ontwerpen, in de groep Relaties:

  • Tabel weergeven    Hiermee opent u het dialoogvenster Tabel weergeven waarin u kunt selecteren welke tabellen en query's u in het venster Relaties wilt weergeven.

  • 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

Een tabelrelatie maken

U kunt een tabelrelatie maken door het venster Relaties te gebruiken of een veld vanuit het deelvenster Lijst met velden naar een gegevensblad te slepen. Wanneer u een relatie tussen tabellen maakt, hoeven de gemeenschappelijke velden niet per se dezelfde naam te hebben, hoewel dit in de praktijk meestal wel het geval is. Belangrijker is dat deze velden hetzelfde gegevenstype moeten bevatten. Als het primaire-sleutelveld een AutoNummering-veld is, kan het externe-sleutelveld echter een Nummer-veld zijn op voorwaarde dat de eigenschap Veldgrootte van beide velden identiek is. U kunt een AutoNummering-veld bijvoorbeeld aan een Nummer-veld koppelen als de eigenschap Veldgrootte van beide velden is ingesteld op Lange integer. Wanneer beide gemeenschappelijke velden Nummer-velden zijn, moet de eigenschap Veldgrootte voor beide velden op dezelfde manier zijn ingesteld.

Een tabelrelatie maken met het venster Relaties

  1. Klik op Bestand en klik vervolgens op Openen.

  2. Selecteer en open de database.

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

  4. Als u nog geen relaties hebt gedefinieerd, wordt het dialoogvenster Tabel weergeven automatisch geopend. Als het venster niet automatisch wordt geopend, gaat u naar het tabblad Ontwerp en klikt u in de groep Relaties op Tabel weergeven.

    In het dialoogvenster Tabel weergeven worden alle tabellen en query's in de database weergegeven. Als u alleen tabellen wilt weergeven, klikt u op Tabellen. Als u alleen query's wilt weergeven, klikt u op Query's. Als u zowel tabellen als query's wilt weergeven, klikt u op Beide.

  5. Selecteer een of meer tabellen of query's en klik op Toevoegen. Wanneer u klaar bent met het toevoegen van tabellen en query's aan het venster Relaties, klikt u op Sluiten.

  6. Sleep een veld (meestal de primaire sleutel) van de ene tabel naar het gemeenschappelijke veld (de externe sleutel) van de andere tabel. Als u meerdere velden wilt slepen, klikt u op elk veld terwijl u Ctrl ingedrukt houdt. Vervolgens sleept u de velden.

    Het dialoogvenster Relaties bewerken wordt geopend.

  7. Controleer of de weergegeven veldnamen de gemeenschappelijke velden voor de relatie zijn. Als een veldnaam onjuist is, klikt u op de veldnaam en selecteert u een nieuw veld in de lijst.

    Als u referentiële integriteit voor deze relatie wilt afdwingen, schakelt u het selectievakje Referentiële integriteit afdwingen in. Zie het gedeelte Referentiële integriteit en Referentiële integriteit afdwingen voor meer informatie.

  8. Klik op Maken.

    Er wordt een relatielijn tussen de twee tabellen getekend. Als u het selectievakje Referentiële integriteit afdwingen hebt ingeschakeld, wordt de lijn aan beide einden dikker weergegeven. Daarnaast wordt (eveneens alleen als u het selectievakje Referentiële integriteit afdwingen hebt ingeschakeld) het nummer 1 weergegeven boven het dikke gedeelte van de lijn aan de ene kant van de relatie en het oneindigheidsteken (8) boven het dikke gedeelte van de lijn aan de andere kant.

    Notities: 

    • Een een-op-een-relatie maken    Beide gemeenschappelijke velden (meestal het primaire- en refererende-sleutelveld) moeten een unieke index bevatten. Dit betekent dat de eigenschap Geïndexeerd voor deze velden moet zijn ingesteld op Ja (geen duplicaten). Als beide velden een unieke index bevatten, wordt in Access een een-op-een-relatie gemaakt.

    • Een een-op-veel-relatie maken    Het veld aan de 'een'-kant (meestal de primaire sleutel) van de relatie moet een unieke index bevatten. Dit betekent dat de eigenschap Geïndexeerd van dit veld moet zijn ingesteld op Ja (geen duplicaten). Het veld aan de 'veel'-kant mag geen unieke index bevatten. Het veld aan de 'veel'-kant mag wel een index bevatten, maar duplicaten moeten worden toegestaan. Dit betekent dat de eigenschap Geïndexeerd van dit veld moet zijn ingesteld op Nee of op Ja (duplicaten OK). Als één veld een unieke index bevat en het andere veld niet, wordt in Access een een-op-veel-relatie gemaakt.

Een tabelrelatie maken met het deelvenster Lijst met velden

U kunt een veld toevoegen aan een bestaande tabel die is geopend in de gegevensbladweergave. U doet dit door het veld vanuit het deelvenster Lijst met velden naar de tabel te slepen. In het deelvenster Lijst met velden worden de beschikbare velden in gerelateerde tabellen en de beschikbare velden in andere tabellen weergegeven. Als u een veld uit een 'andere' (niet-gerelateerde) tabel sleept en vervolgens de wizard Opzoeken uitvoert, wordt automatisch een nieuwe een-op-veel-relatie gemaakt tussen de tabel in het deelvenster Lijst met velden en de tabel waarnaar u het veld hebt gesleept. Met deze relatie, die in Access wordt gemaakt, wordt standaard geen referentiële integriteit afgedwongen. Als u referentiële integriteit wilt afdwingen, moet u de relatie bewerken. Zie het gedeelte Een tabelrelatie wijzigen voor meer informatie.

Een tabel in de gegevensbladweergave openen

  1. Klik op het tabblad Bestand op Openen.

  2. Selecteer en open de database in het dialoogvenster Openen.

  3. Klik in het navigatiedeelvenster met de rechtermuisknop op de tabel waaraan u het veld wilt toevoegen en waarvoor u de relatie wilt maken, en klik op Ontwerpweergave.

Het deelvenster Lijst met velden openen

  • Druk op Alt+F8.

    Het deelvenster Lijst met velden wordt weergegeven.

In het deelvenster Lijst met velden worden alle andere tabellen in de database weergegeven, ingedeeld in categorieën. Als u met een tabel werkt in de gegevensbladweergave, worden de velden in het deelvenster Lijst met velden van Access weergegeven in een van de volgende categorieën: In gerelateerde tabellen beschikbare velden en In andere tabellen beschikbare velden. De eerste categorie bevat alle tabellen die een relatie hebben met de geopende tabel. De tweede categorie bevat alle tabellen waarmee de tabel geen relatie heeft.

Als u in het deelvenster Lijst met velden op het plusteken (+) naast een tabelnaam klikt, wordt een lijst weergegeven met alle velden die beschikbaar zijn in deze tabel. Als u een veld aan de tabel wilt toevoegen, sleept u het gewenste veld vanuit het deelvenster Lijst met velden naar de tabel in de gegevensbladweergave.

Een veld toevoegen en een relatie maken vanuit het deelvenster Lijst met velden

  1. Klik in het deelvenster Lijst met velden onder In andere tabellen beschikbare velden op het plusteken (+) naast een tabelnaam om de lijst met velden in deze tabel weer te geven.

  2. Sleep het gewenste veld vanuit het deelvenster Lijst met velden naar de tabel in de gegevensbladweergave.

  3. Wanneer de invoeglijn verschijnt, zet u het veld op die plaats neer.

    De wizard Opzoeken wordt gestart.

  4. Volg de aanwijzingen om de wizard Opzoeken te voltooien.

    Het veld wordt weergegeven in de gegevensbladweergave.

Wanneer u een veld uit een 'andere' (niet-gerelateerde) tabel sleept en vervolgens de wizard Opzoeken uitvoert, wordt automatisch een nieuwe een-op-veel-relatie gemaakt tussen de tabel in de Lijst met velden en de tabel waarnaar u het veld hebt gesleept. Bij deze relatie, die door Access is gemaakt, wordt referentiële integriteit niet standaard afgedwongen. Als u referentiële integriteit wilt afdwingen, moet u de relatie bewerken. Zie het gedeelte Een tabelrelatie wijzigen voor meer informatie.

Naar boven

Een tabelrelatie verwijderen

Als u een tabelrelatie wilt verwijderen, moet u in het venster Relaties de relatielijn verwijderen. Plaats de cursor zodanig dat deze naar de relatielijn wijst en klik vervolgens op de lijn. De relatielijn wordt dikker weergegeven wanneer deze wordt geselecteerd. Druk op Delete terwijl de relatielijn is geselecteerd. Houd er rekening mee dat u met het verwijderen van een relatie ook de ondersteuning voor referentiële integriteit voor die relatie verwijdert (als deze is ingeschakeld). Hierdoor wordt niet meer automatisch in Access voorkomen dat niet-gekoppelde records aan de 'veel'-kant van de relatie worden gemaakt.

  1. Klik op het tabblad Hulpmiddelen voor Databases in de groep Relaties op Relaties.

    Het venster Relaties wordt geopend. Als u nog geen relaties hebt gedefinieerd en het venster Relaties voor het eerst opent, wordt het dialoogvenster Tabel weergeven geopend. Klik op Sluiten als het dialoogvenster wordt weergegeven.

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

    Alle tabellen met relaties worden weergegeven en de relatielijnen zijn zichtbaar.

  3. Klik op de relatielijn van de relatie die u wilt verwijderen. De relatielijn wordt dikker weergegeven wanneer deze wordt geselecteerd.

  4. Druk op Del.

    -of-

Klik met de rechtermuisknop en kies Verwijderen.

  • Mogelijk wordt het bericht Weet u zeker dat u de geselecteerde relatie permanent uit de database wilt verwijderen? in Access weergegeven. Klik op Ja als dit bevestigingsbericht verschijnt.

Opmerking: Als een van de tabellen in de tabelrelatie in gebruik is (bijvoorbeeld door een andere persoon of een ander proces) of zich in een geopend databaseobject bevindt (bijvoorbeeld een formulier), kunt u de relatie niet verwijderen. U kunt de relatie pas verwijderen nadat u de eventueel geopende objecten die van deze tabellen gebruikmaken hebt gesloten.

Naar boven

Een tabelrelatie wijzigen

U kunt een tabelrelatie wijzigen door deze te selecteren in het venster Relaties en de relatie vervolgens te bewerken. Plaats de cursor zodanig dat deze naar de relatielijn wijst en selecteer de lijn. De relatielijn wordt dikker weergegeven zodra deze is geselecteerd. Als de relatielijn is geselecteerd, dubbelklikt u erop of klikt u op het tabblad Ontwerpen in de groep Extra op Relaties bewerken. Het dialoogvenster Relaties bewerken wordt geopend.

Breng de gewenste wijzigingen aan in het dialoogvenster Relaties bewerken

  1. Klik op het tabblad Hulpmiddelen voor Databases in de groep Relaties op Relaties.

    Het venster Relaties wordt geopend. Als u nog geen relaties hebt gedefinieerd en het venster Relaties voor het eerst opent, wordt het dialoogvenster Tabel weergeven geopend. Klik op Sluiten als het dialoogvenster wordt weergegeven.

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

    Alle tabellen met relaties worden weergegeven en de relatielijnen zijn zichtbaar.

  3. Klik op de relatielijn van de relatie die u wilt wijzigen. De relatielijn wordt dikker weergegeven zodra u deze selecteert.

  4. Dubbelklik op de relatielijn.

  5. Breng de wijzigingen aan en klik op OK.

    In het dialoogvenster Relaties bewerken kunt u een tabelrelatie wijzigen. U kunt met name de tabellen, query's of velden aan beide kanten van de relatie wijzigen. Daarnaast kunt u het jointype instellen of referentiële integriteit afdwingen en een stapsgewijze bewerking kiezen. Zie het gedeelte Het jointype instellen voor meer informatie over het jointype en hoe u het moet instellen. Zie het gedeelte Referentiële integriteit afdwingen voor meer informatie over de wijze waarop u referentiële integriteit kunt afdwingen en een stapsgewijze bewerking kunt kiezen.

Het jointype instellen

Wanneer u een tabelrelatie definieert, worden de feiten over de relatie automatisch doorgegeven aan uw queryontwerpen. Als u bijvoorbeeld een relatie tussen twee tabellen definieert en vervolgens een query maakt waarin deze tabellen worden gebruikt, worden in Access de velden die standaard overeenkomen automatisch geselecteerd op basis van de velden die zijn opgegeven in de relatie. U kunt deze initiële standaardwaarden wel wijzigen in de query, maar de door de relatie verstrekte waarden zijn in de meeste gevallen correct. In bijna alle databases (met uitzondering van zeer eenvoudige databases) zult u regelmatig gegevens uit meerdere tabellen vergelijken en bijeenbrengen. U kunt daarom veel tijd besparen en andere voordelen behalen als u standaardwaarden instelt bij het maken van relaties.

In een query voor meerdere tabellen worden gegevens uit meerdere tabellen gecombineerd door in gemeenschappelijke velden naar overeenkomstige waarden te zoeken. De bewerking waarmee het zoeken en combineren wordt uitgevoerd, wordt een join genoemd. Stel dat u orders van klanten wilt weergeven. U maakt een query waarmee de tabel Klanten aan de tabel Orders wordt gekoppeld op basis van het veld Klantnummer. Het queryresultaat bevat alleen de klant- en ordergegevens van de rijen waarvoor een overeenkomende waarde is gevonden.

Het jointype is een van de waarden die u voor elke relatie kunt opgeven. Het jointype laat Access weten welke records moeten worden opgenomen in het queryresultaat. Neem bijvoorbeeld een query waarmee de tabel Klanten aan de tabel Orders wordt gekoppeld op basis van de gemeenschappelijke velden die het klantnummer vertegenwoordigen. Met behulp van het standaard-jointype (een inner join genoemd) retourneert de query alleen de rijen van Klanten en van Orders waarvoor de gemeenschappelijke velden (ook wel de gekoppelde velden genoemd) identiek zijn.

Stel dat het queryresultaat alle klanten moet retourneren, ook de klanten die nog geen orders hebben geplaatst. Hiervoor moet u het jointype veranderen van een inner join in een zogenaamde left outer join. Een left outer join retourneert alle rijen uit de tabel aan de linkerkant van de relatie en alleen rijen uit de rechtertabel die een overeenkomende waarde bevatten. Een right outer join retourneert alle rijen uit de rechtertabel en alleen rijen uit de linkertabel die een overeenkomende waarde bevatten.

Opmerking: In dit geval verwijzen 'left' en 'right' naar de positie van de tabellen in het dialoogvenster Relaties bewerken, niet in het venster Relaties.

Bedenk eerst welk het resultaat u meestal verwacht van een query waarmee de tabellen in deze relatie aan elkaar worden gekoppeld. Stel vervolgens dienovereenkomstig het jointype in.

Het jointype instellen

  1. Klik in het dialoogvenster Relaties bewerken op Jointype.

    Het dialoogvenster Joineigenschappen wordt geopend.

  2. Klik op uw keuze en klik op OK.

In de volgende tabel (waarin de tabellen Klanten en Orders worden gebruikt) ziet u de drie keuzemogelijkheden in het dialoogvenster Joineigenschappen, de join die wordt gebruikt en het feit of voor beide tabellen alle rijen of alleen de overeenkomende rijen worden opgenomen.

Keuze

Relationele join

Linkertabel

Rechtertabel

1. Alleen rijen waarvoor de gekoppelde velden uit beide tabellen identiek zijn opnemen.

Inner join

Overeenkomende rijen

Overeenkomende rijen

2. Alle records uit Klanten en alleen records uit Orders waarvoor de gekoppelde velden identiek zijn opnemen.

Left outer join

Alle rijen

Overeenkomende rijen

3. Alle records uit Orders en alleen records uit Klanten waarvoor de gekoppelde velden identiek zijn opnemen.

Right outer join

Overeenkomende rijen

Alle rijen

Als u optie 2 of 3 kiest, verschijnt er een pijl op de relatielijn. Deze pijl wijst naar de kant van de relatie die alleen overeenkomende rijen weergeeft.

Wijzigingen aanbrengen in het dialoogvenster Joineigenschappen

  1. Klik op het tabblad Hulpmiddelen voor Databases in de groep Relaties op Relaties.

    Het venster Relaties wordt geopend. Als u nog geen relaties hebt gedefinieerd en het venster Relaties voor het eerst opent, wordt het dialoogvenster Tabel weergeven geopend. Klik op Sluiten als het dialoogvenster wordt weergegeven.

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

    Alle tabellen met relaties worden weergegeven en de relatielijnen zijn zichtbaar.

  3. Klik op de relatielijn van de relatie die u wilt wijzigen. De relatielijn wordt dikker weergegeven zodra u deze selecteert.

  4. Dubbelklik op de relatielijn.

    Het dialoogvenster Relaties bewerken wordt geopend.

  5. Klik op Jointype.

  6. Klik in het dialoogvenster Joineigenschappen op een optie en klik op OK.

  7. Breng eventuele aanvullende wijzigingen aan in de relatie en klik op OK.

Naar boven

Referentiële integriteit afdwingen

Het gebruik van referentiële integriteit is bedoeld om niet-gekoppelde records te voorkomen en ervoor te zorgen dat verwijzingen gesynchroniseerd blijven, zodat records niet verwijzen naar andere niet-bestaande records. U dwingt referentiële integriteit af door deze optie in te schakelen voor een tabelrelatie. Wanneer deze optie in Access is ingeschakeld, worden alle bewerkingen geweigerd die in strijd zijn met de referentiële integriteit van de betreffende tabelrelatie. Access weigert updates waarmee het doel van een verwijzing wordt gewijzigd en verwijderingen waarmee het doel van een verwijzing wordt verwijderd. Zie het gedeelte De opties voor trapsgewijze bewerkingen instellen als u referentiële bijwerkingen en verwijderingen in Access wilt doorvoeren zodat alle rijen dienovereenkomstig worden gewijzigd.

Referentiële integriteit in- of uitschakelen

  1. Klik op de relatielijn van de relatie die u wilt wijzigen. De relatielijn wordt dikker weergegeven zodra u deze selecteert.

  2. Dubbelklik op de relatielijn.

Het dialoogvenster Relaties bewerken wordt geopend.

  1. Schakel het selectievakje Referentiële integriteit afdwingen in.

  2. Breng eventuele aanvullende wijzigingen aan in de relatie en klik op OK.

Nadat u referentiële integriteit hebt afgedwongen, zijn de volgende regels van toepassing:

  • Een waarde kan alleen in het externe-sleutelveld van een gerelateerde tabel worden geplaatst als deze waarde al aanwezig is in het primaire-sleutelveld van de primaire tabel. Anders worden er niet-gekoppelde records gemaakt.

  • U kunt een record niet uit een primaire tabel verwijderen als een gerelateerde tabel overeenkomstige records bevat. U kunt bijvoorbeeld geen record van een werknemer uit de tabel Werknemers verwijderen als er orders aan deze werknemer zijn toegewezen in de tabel Orders. U kunt wel een primaire record en alle gerelateerde records in één bewerking verwijderen door het selectievakje Gerelateerde records trapsgewijs verwijderen in te schakelen.

  • U kunt een primaire-sleutelwaarde in de primaire tabel niet wijzigen als hierdoor niet-gekoppelde records zouden ontstaan. U kunt bijvoorbeeld geen ordernummer in de tabel Orders wijzigen als er regelitems aan deze order zijn toegewezen in de tabel Orderinformatie. U kunt wel een primaire record en alle gerelateerde records in één bewerking bijwerken door het selectievakje Gerelateerde velden trapsgewijs bijwerken in te schakelen.

    Notities: Als u problemen ondervindt bij het inschakelen van referentiële integriteit, moet u ermee rekening houden dat referentiële integriteit pas kan worden afgedwongen nadat u aan de volgende voorwaarden hebt voldaan:

    • Het gemeenschappelijke veld van de primaire tabel moet een primaire sleutel zijn of een unieke index bevatten.

    • De gemeenschappelijke velden moeten hetzelfde gegevenstype bevatten. De enige uitzondering hierop is dat een AutoNummering-veld kan zijn gerelateerd aan een Nummer-veld waarvan de eigenschap Veldgrootte is ingesteld op Lange integer.

    • Beide tabellen moeten tot dezelfde Access-database behoren. Referentiële integriteit kan niet worden afgedwongen bij gekoppelde tabellen. Als de brontabellen echter de bestandsindeling van Access hebben, kunt u de database openen waarin de tabellen zijn opgeslagen en referentiële integriteit in die database inschakelen.

De opties voor trapsgewijze bewerkingen instellen

Er kan zich een situatie voordoen waarin u een gegronde reden hebt om de waarde aan de 'een'-kant van een relatie te wijzigen. In een dergelijke situatie moet u in Access alle betrokken rijen automatisch laten bijwerken als onderdeel van één bewerking. Op die manier wordt de update volledig uitgevoerd zodat de database niet inconsistent wordt (doordat sommige rijen worden bijgewerkt en andere niet). In Access kan dit probleem worden voorkomen met behulp van de optie Gerelateerde velden trapsgewijs bijwerken. Stel dat u referentiële integriteit hebt afgedwongen en de optie Gerelateerde velden trapsgewijs bijwerken hebt ingeschakeld. Als u vervolgens een primaire sleutel bijwerkt, worden in Access alle velden die naar de primaire sleutel verwijzen ook automatisch bijgewerkt. 

In sommige gevallen kan het nodig zijn een rij en alle gerelateerde records te verwijderen, bijvoorbeeld een Verzender-record en alle gerelateerde orders voor deze verzender. Daarom biedt Access ondersteuning voor de optie Gerelateerde records trapsgewijs verwijderen. Stel dat u referentiële integriteit hebt afgedwongen en de optie Gerelateerde records trapsgewijs verwijderen hebt ingeschakeld. Als u vervolgens de record met de primaire sleutel verwijdert, worden in Access alle records die naar de primaire sleutel verwijzen ook automatisch verwijderd. 

Trapsgewijs bijwerken en/of trapsgewijs verwijderen in- of uitschakelen

  1. Klik op de relatielijn van de relatie die u wilt wijzigen. De relatielijn wordt dikker weergegeven zodra u deze selecteert.

  2. Dubbelklik op de relatielijn.

Het dialoogvenster Relaties bewerken wordt geopend.

  1. Schakel het selectievakje Referentiële integriteit afdwingen in.

  2. Schakel het selectievakje Gerelateerde velden trapsgewijs bijwerken en/of het selectievakje Gerelateerde records trapsgewijs verwijderen in.

  3. Breng eventuele aanvullende wijzigingen aan in de relatie en klik op OK.

Opmerking: Als de primaire sleutel een AutoNummering-veld is, gebeurt er niets als u het selectievakje Gerelateerde velden trapsgewijs bijwerken inschakelt omdat de waarde in een AutoNummering-veld niet kan worden gewijzigd.

Naar boven

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.

×