Office 2010 - Access

Les 18: Relaties (2)

18/76 Lessen 

Relaties maken

Nu we alle tabellen hebben gemaakt, is het eindelijk tijd om de relaties tussen deze te maken.
Om een relatie te maken sluiten we eerst alle tabellen.
Mocht je niet meer weten hoe je een tabel sluit, wat me zou verwonderen, hiervoor klik je de X in de rechterbovenhoek van de tabel.

les18_image001
Wanneer alle tabellen gesloten zijn, kies je het contextuele tabblad “Hulmiddelen voor databases”, en klik je de knop “Relaties”.

les18_image002

Het tabblad “Relaties” opent in het venster.
Is het de eerste keer dat je een relatie maakt in deze database, dan verschijnt er ook een dialoogvenster “Tabel weergeven”:

les18_image003

Je hebt de mogelijkheid relaties te leggen tussen Tabellen, Query’s en beiden.
Hiervoor heb je de verschillende tabbladen, bovenaan het dialoogvenster “Tabel weergeven”.
Omdat we het nog niet over Query’s hebben gehad, ga ik het hier bij “Tabellen” houden.

In het dialoogvenster “Tabel weergeven”, onder het tabblad “Tabel”, zien we de drie tabellen die we reeds hebben gemaakt in onze database.
Omdat we deze allen moeten verbinden met elkaar, moeten we deze plaatsen in het tabblad “Relaties”.

Om dit te doen selecteer je de tabel in het dialoogvenster, en klik je de knop “Toevoegen”.
Iets vlugger kan het door te dubbelklikken op de tabel in het dialoogvenster.
We herhalen dit voor elke tabel, en klikken de knop sluiten wanneer we hiermee klaar zijn.

Nu al onze tabellen in het tabblad “Relaties” staan moeten we deze met elkaar verbinden.
Mochten jouw tabellen in een andere positie staan, wat meer dan waarschijnlijk het geval is, kan je deze verplaatsen door op de titelbalk te klikken van de tabel, en deze te slepen naar de juiste plaats.
Wanneer je niet alle velden uit een tabel kan zien, plaats je de muisaanwijzer over de rand van de tabel. Wanneer deze wijzigt in een dubbel pijltje, klik en sleep je deze naar de gewenste grootte.

les18_image004

Om de tabellen met elkaar te verbinden, klik en sleep je het veld “AlbumID” uit de tabel “Album”, over het veld “AlbumID” uit de tabel “Liedje” (1).
Dit opent het venster “Relaties bewerken”.

In dit venster zie je ondermeer dat je een
“Een een-op-veel” relatie aan het maken bent.
Dat de beide velden “AlbumID” zijn, en dat de ene uit de tabel “Album” komt en de andere uit de tabel “Liedje”.

En we hebben de knop “Jointype…”.
Deze knop heeft zijn nut wanneer je een relatie maakt tussen twee tabellen, die reeds zijn voorzien van gegevens.

les18_image005

Wanneer we hierop klikken, opent een dialoogvenster met drie opties:

les18_image006

  1. Alleen rijen opnemen waarvoor de gekoppelde velden uit beide tabellen identiek zijn.
  2. Alle records uit Album opnemen en alleen die records uit Liedje waarvoor de gekoppelde velden identiek zijn.
  3. Alle records uit Liedje opnemen en alleen die records uit Album waarvoor de gekoppelde velden identiek zijn.

Even uitleggen:
de eerste optie komt eigenlijk hier op neer:
“Alleen de albums tonen met liedjes.”
De tweede optie komt overeen met:
“Alle albums tonen, ook diegene waar geen liedjes voor zijn.”
De derde optie zouden we kunnen interpreteren als:
“Alle liedjes worden getoond, ook diegene waarvoor nog geen albumnummer is.”
De tabel “Album” is reeds voorzien van verschillende records, maar de tabel “Liedje” heeft nog geen records. Dus lijkt me de tweede optie de beste keuze, en klik op OK.
En als laatste onderdeel in het venster “Relaties bewerken”, hebben we nog de Referentiële integriteit. En dit is toch wel belangrijk.
Wat is Referentiële integriteit ?
Een voorbeeld:
Je hebt een een-op-veel-relatie tussen de tabel “Album” en de tabel “Liedje”, en je wil een album uit de tabel “Album” verwijderen.
Wanneer nu het album dat je wil verwijderen, liedjes heeft in de tabel “Liedjes”, dan worden deze liedjes “niet-gekoppelde liedjes”. Volg je nog??

De liedjes hebben nog wel een AlbumID in de tabel “Liedjes”, maar dit AlbumID bestaat niet meer, dit heb je zojuist verwijderd uit de tabel “Album”.

En hiervoor dient het aanvinkvakje “Referentiële integriteit”.
Referentiële integriteit is bedoeld om niet-gekoppelde records te voorkomen.

Dus wanneer dit vakje is aangevinkt, zal Access elke bewerking weigeren die de tabelrelatie zou schenden. Bijvoorbeeld het verwijderen van een AlbumID in de tabel “Album”.

Wanneer het aanvinkvakje “Referentiële integriteit afdwingen” is geselecteerd, hebben we de mogelijkheid de twee onderliggende vakjes te selecteren.

Het eerste, “Gerelateerde velden trapsgewijs bijwerken” zal wanneer we het primaire veld uit de ene tabel wijzigen, automatisch gerelateerde velden aanpassen in de andere tabel.
Voorbeeld: je wijzigt een veld AlbumID in de tabel “Album”, dan zal het veld AlbumID in de tabel “Liedjes” automatisch worden aangepast.

Wanneer het aanvinkvakje “Gerelateerde records trapsgewijs verwijderen” is geselecteerd, kunnen we toch records verwijderen uit de tabel “Album”. Het gerelateerde veld in de tabel “Liedje” zal dan automatisch ook worden verwijderd. Normaal zou dit niet hebben gekund omdat het vakje “Referentiële integriteit afdwingen” was aangevinkt.

Voor deze relatie selecteren we alle drie de aanvinkvakjes.
En klikken op OK.

Hetzelfde doe je voor het veld “ZangerID” in de tabel “LeadZangers” dat je sleept over het veld “ZangerID” in de tabel “Liedje”. Enkel voor de “joineigenschappen” kies je voor “Alleen rijen opnemen waarvoor de gekoppelde velden uit beide tabellen identiek zijn”, welke de standaard instelling is.

Dan hebben we dit:

les18_image007
Je kunt steeds de instellingen van de relatie wijzigen door te dubbelklikken op de lijn tussen de twee tabellen. Of door een lijn te selecteren, en te klikken op de knop “Relaties bewerken” in het lint.

Om een relatie te verwijderen, selecteer je de lijn van de relatie, en klik je de Delete-knop op je toetsenbord. Of je rechtsklikt een lijn, en kiest “Verwijderen” in het drop-downmenu.

Formidabel U hebt Les 18 voltooid START VOLGENDE LES