Relaties tussen tabellen definiëren (MDB)
Wanneer u een relatie (relatie: een verbinding tussen gemeenschappelijke velden (kolommen) in twee tabellen. Een relatie kan een-op-een, een-op-veel of veel-op-veel zijn.) tussen tabellen definieert, hoeven de gerelateerde velden niet dezelfde naam te hebben. Gerelateerde velden moeten echter wel hetzelfde gegevenstype (gegevenstype: het kenmerk van een veld dat bepaalt welk type gegevens daarin kunnen worden opgeslagen. Gegevenstypen zijn onder andere Booleaans, Integer, Lang, Valuta, Enkel, Dubbel, Datum, Reeks en Variant (standaardtype).) hebben, tenzij het primaire sleutel (primaire sleutel: een of meer velden (kolommen) waarvan de waarden elke record in de tabel uniek identificeren. Een primaire sleutel kan geen Null-waarden bevatten en heeft altijd een unieke index. Met een primaire sleutel relateert u een tabel aan refererende sleutels in andere tabellen.)-veld een AutoNummering (gegevenstype AutoNumber: in een Microsoft Access-database is dit een veldgegevenstype waarmee automatisch een uniek getal wordt opgeslagen voor elke record die wordt toegevoegd aan een tabel. Er kunnen drie verschillende nummeringen worden gegenereerd: opeenvolgend, willekeurig en replicatie-id.)-veld is. Een AutoNummering-veld kunt u alleen aan een veld met het gegevenstype Numeriek koppelen als de instelling van de eigenschap Veldlengte van beide gekoppelde velden hetzelfde is. U kunt een AutoNummering-veld bijvoorbeeld aan een veld van het type Numeriek koppelen als de eigenschap Veldlengte van de beide velden Lange integer is. Zelfs als beide gekoppelde velden AutoNummering-velden zijn, moet de eigenschap Veldlengte voor beide velden dezelfde instelling hebben.
Een een-op-veel- of een-op-een-relatie definiëren
Sluit alle eventueel geopende tabellen. U kunt geen relaties instellen of wijzigen tussen geopende tabellen.
Druk op F11 om naar het databasevenster (databasevenster: het venster dat verschijnt als u een Access-database of een Access-project opent. Het bevat snelkoppelingen voor het maken van nieuwe databaseobjecten en het openen van bestaande objecten.) te gaan.
Klik op Relaties op de werkbalk.
Als u nog geen relaties in uw database hebt gedefinieerd, wordt het dialoogvenster Tabel weergeven automatisch weergegeven.
Als u de tabellen waarvoor u relaties wilt instellen nog niet hebt toegevoegd en het dialoogvenster Tabel toevoegen niet wordt weergegeven, klikt u op Tabel weergeven op de werkbalk.
Dubbelklik op de namen van de tabellen die u wilt relateren en sluit vervolgens het dialoogvenster Tabel toevoegen. Als u een relatie wilt maken tussen een tabel en zichzelf, voegt u de tabel tweemaal toe.
Sleep het veld dat u wilt relateren uit de tabel naar het gerelateerde veld in de andere tabel.
Als u meerdere velden wilt slepen, houdt u CTRL ingedrukt, klikt u op elk veld en sleept u de velden.
Meestal sleept u het primaire-sleutelveld (dat vet wordt weergegeven) vanuit de ene tabel naar een soortgelijk veld (vaak met dezelfde naam) in een andere tabel, dat de refererende sleutel (refererende sleutel: een of meer tabelvelden (kolommen) die verwijzen naar het veld of de velden met de primaire sleutel in een andere tabel. Een refererende sleutel geeft de relatie tussen de tabellen aan.) wordt genoemd.
Het dialoogvenster Relaties bewerken wordt weergegeven. Controleer of de veldnamen in beide kolommen kloppen. U kunt deze namen desgewenst wijzigen.
Stel zo nodig de relatieopties in.
Klik op de knop Maken om de relatie te maken.
Herhaal stap 5 tot en met 8 voor elk paar tabellen dat u wilt relateren.
Wanneer u het venster Relaties (venster Relaties: een venster waarin u relaties tussen tabellen en query's kunt bekijken, maken en wijzigen.) sluit, wordt u gevraagd of u de indeling wilt opslaan. Ook als u de indeling niet opslaat, worden de gemaakte relaties in de database opgeslagen.
Opmerking U kunt niet alleen voor tabellen, maar ook voor query's relaties instellen. Bij query's wordt referentiële integriteit (referentiële integriteit: de regels die u hanteert om de bestaande relaties tussen tabellen in stand te houden wanneer u records invoert of verwijdert.) echter niet afgedwongen.
Een veel-op-veel-relatie definiëren
Maak de twee tabellen waartussen u een veel-op-veel-relatie (veel-op-veel-relatie: een verbinding tussen twee tabellen waarbij één record in een van beide tabellen kan zijn gerelateerd aan veel records in de andere tabel. Als u een veel-op-veel-relatie wilt instellen, maakt u een derde tabel (verbindingstabel) en voegt u de primaire-sleutelvelden van beide tabellen aan deze tabel toe.) wilt definiëren.
Maak een derde tabel, een zogenaamde verbindingstabel, en voeg hieraan nieuwe velden toe met dezelfde definities als de primaire-sleutelvelden uit de twee andere tabellen. In de verbindingstabel fungeren de primaire-sleutelvelden als refererende sleutels (refererende sleutel: een of meer tabelvelden (kolommen) die verwijzen naar het veld of de velden met de primaire sleutel in een andere tabel. Een refererende sleutel geeft de relatie tussen de tabellen aan.). Net als aan andere tabellen kunt u aan de verbindingstabel velden toevoegen.
Stel in de verbindingstabel de primaire sleutel zo in dat deze alle primaire-sleutelvelden van de andere twee tabellen bevat. In de verbindingstabel Orderinformatie kan de primaire sleutel bijvoorbeeld worden samengesteld uit de velden Order-id en Productnummer.
Werkwijze
Open een tabel in de ontwerpweergave (ontwerpweergave: een venster waarin het ontwerp wordt weergegeven van de volgende databaseobjecten: tabellen, query's, formulieren, rapporten, macro's en Data Access-pagina's. In de ontwerpweergave kunt u nieuwe databaseobjecten maken en het ontwerp van bestaande databaseobjecten wijzigen.).
Selecteer het veld of de velden die u als primaire sleutel (primaire sleutel: een of meer velden (kolommen) waarvan de waarden elke record in de tabel uniek identificeren. Een primaire sleutel kan geen Null-waarden bevatten en heeft altijd een unieke index. Met een primaire sleutel relateert u een tabel aan refererende sleutels in andere tabellen.) wilt definiëren.
Als u één veld wilt selecteren, klikt u op de rijkiezer (rijkiezer: een klein vakje of balkje waarop u klikt om een gehele rij te selecteren in de ontwerpweergave van de tabel of de macro, of in de ontwerpweergave van rapporten terwijl u records sorteert en groepeert.) van het gewenste veld.
Als u meerdere velden wilt selecteren, houdt u CTRL ingedrukt terwijl u op de rijkiezer van elk veld klikt.
Klik op Primaire sleutel op de werkbalk.
Opmerking Als u de velden in een meervoudige primaire sleutel een andere volgorde wilt geven dan de volgorde van die velden in de tabel, klikt u op Indexen op de werkbalk om het venster Indexen (venster Indexen: een venster in een Access-database waarin u de indexen van een tabel kunt bekijken of bewerken, of waarin u indexen voor meerdere velden kunt maken.) weer te geven. Vervolgens kunt u in dit venster de veldnamen voor de index (index: een functie waarmee u sneller kunt zoeken en sorteren in een tabel op basis van sleutelwaarden en waarmee u uniekheid kunt afdwingen voor de rijen in een tabel. De primaire sleutel van een tabel wordt automatisch geïndexeerd. Sommige velden kunnen op grond van het gegevenstype niet worden geïndexeerd.) met de naam PrimaryKey opnieuw rangschikken.
Definieer een een-op-veel-relatie (een-op-veel-relatie: een verbinding tussen twee tabellen waarbij de primaire-sleutelwaarde van elke record in de primaire tabel correspondeert met de waarde in een of meer overeenkomende velden van veel records in de gerelateerde tabel.) tussen elk van de twee primaire tabellen (primaire tabel: de 'een'-kant van twee gerelateerde tabellen in een een een-op-veel-relatie. Een primaire tabel moet een primaire sleutel hebben en elke record moet uniek zijn.) en de verbindingstabel.
:thumb: