Prøv det!
Styrken ved en relationsdatabase ligger i at kombinere data på tværs af tabeller. For at gøre det, skal du først oprette relationer mellem dine tabeller. Sæt så Access i gang med at kombinere data i forespørgsler, formler og rapporter.
For at se alle nuværende relationer, der er defineret for en database, skal du åbne en skabelon i Access, gå til fanen Databaseværktøjer og vælge Relationer.
Bemærk!: Hvis du åbner en tom database, eller hvis du ikke har defineret nogen tabelrelationer, vil Access bede dig om at tilføje en tabel eller forespørgsel. Før du kan tilføje en relation, skal du bruge mindst to tabeller. Ideelt set opbygger du alle dine tabeller først. For at få mere at vide, kan du se Opret relationer med guiden Opslag og Opret relationer med ruden Relationer.
Forstå visningen Relationer
Linjerne i visningen Relationer angiver forbindelser mellem tabellerne. På følgende billede, er det tabellen til venstre, der er den overordnede tabel. Tabellen til højre er den underordnede tabel. Linjerne mellem dem forbinder felterne (i dette tilfælde ordre-id og produkt-id), der bruges til at matche data.
Linjer og symboler viser dig, hvordan dine tabeller er relateret:
-
En tyk forbindelseslinje betyder, at du gennemtvinger referentiel dataintegritet. Det var godt. Det holder dine data synkroniserede.
-
I vores illustration angiver tallet 1, at der kun kan være én matchende post i den pågældende tabel. I tabellen over ordrer, der vises her, matcher kun én post hver ordre.
-
Symbolet ∞ indikerer, at mange poster kan indeholde det samme id. I tabellen Ordredetaljer, der vises her, kan en ordre (angivet med dens ordre-id) vises mere end én gang, fordi den samme ordre kan indeholde flere produkter.
Relationstyper mellem tabeller
Der findes tre relationstyper mellem tabeller:
-
En til en. Når hvert element i hver tabel kun vises én gang. Hver medarbejder kan for eksempel kun have én firmabil. Få mere at vide under Opret en til en-relationer.
-
En til mange. Når ét element i én tabel kan have en relation til flere elementer i en anden tabel. Hver indkøbsordre kan for eksempel indeholde flere produkter.
-
Mange til mange. Når ét eller flere elementer i én tabel kan have en relation til én eller flere elementer i en anden tabel. Hver ordre kan for eksempel indeholde flere produkter, og hvert produkt kan ses på mange ordrer. Få mere at vide her Opret mange til mange-relationer.
En til mange-relationer
En af de mest almindelige relationer mellem tabeller i flot designede databaser er en til mange-relationen.
Relationer mellem tabeller er normalt afhængige af den primære nøgle i en af tabellerne. Husk at den primære nøgle er et entydigt id (ofte numerisk) for hver enkelt post. For at vise, at oplysningerne i to forskellige tabeller er forbundne, opretter man normalt en relation ved at bruge den primære nøgle fra en af tabellerne.
For eksempel vises der i denne relation, at hver person i tabellen over kontakter har et id, hvilket er den primære nøgle (angivet med nøglesymbolet). Dette id vises også i feltet Ejer i tabellen Aktiver. For at sende en mail til den person, der er knyttet til et aktiv, skal du hente værdien fra feltet Mailadresse. For at gøre dette, skal du kigge efter værdien i feltet Ejer i tabellen Aktiver, og så søge efter dette id i tabellen Kontakter. Tallet 1 i den ene ende af den forbindende linje og symbolet ∞ i den anden ende angiver, at dette er en en til mange-relation, så én kontakt kan være tilknyttet mange aktiver.
Redigering af en relation
Hvis du redigerer en eksisterende database, eller hvis du har oprettet din database fra en skabelon, kan du redigere de eksisterende relationer efter behov.
Bemærk!: Hvis de tabeller, du vil arbejde med, er i brug, skal du først lukke dem og andre åbne elementer, der bruger dem.
-
Vælg Databaseværktøjer > Relationer.
-
Markér den linje, der forbinder to relaterede tabeller.
Tip!: Hvis du ikke ser den relation, du ønsker, skal du vælge Alle relationer under gruppen Relationer på fanen Design.
-
På fanen Design skal du vælge Rediger relationer.
Tabel/forespørgsel er den overordnede tabel til venstre (i dette eksempel, Kunder).
Relateret tabel/forespørgsel er den underordnede tabel (i dette eksempel, Ordrer).
Selvom tabellerne ikke vises i denne rækkefølge i visningen Relationer, angiver deres placering i dialogboksen retningen af den linje, der forbinder dem og relationen. Dette er vigtigt, hvis det for eksempel er en en til mange-relation, da det indikerer, at tabellen til venstre er en, (den overordnede tabel), og tabellen til højre er mange (underordnede tabel).
-
For at ændre de felter, der forbinder tabellerne, skal du vælge et andet felt under hver tabel, der vises. I dette eksempel er id-feltet i tabellen Kunder knyttet til feltet kunde-id i tabellen Ordrer.
-
Rediger den måde Access synkroniserer dine data på mellem tabeller.
Gennemtving referentiel integritet
For at forhindre ugyldige data og for at holde referencer synkroniseret på tværs af tabelrelationer, skal du vælge dette.
Lad os for eksempel antage, at du har en en til en-relation mellem tabellerne Medarbejdere og Medarbejderfordele. Hvis en medarbejder forlader virksomheden, og du fjerner ham eller hende fra tabellen Medarbejdere, fjernes den relaterede medarbejderpost i tabellen Medarbejderfordele også.
Nogle gange giver det ikke mening at gennemtvinge referentiel integritet. Lad os for eksempel antage, at du har en en til mange-relation mellem Speditionsfirmaer og Ordrer. Du sletter en speditør, og den pågældende speditør er knyttet til ordrer i tabellen Ordrer. Disse ordrer bliver uafhængige, hvilket betyder, at de stadig indeholder et speditør-id, men det id er ikke længere gyldigt, da den post, det refererer til, ikke eksisterer længere.
Kaskadevis opdatering af relaterede felter
Vælg dette for at sikre, at data i relaterede felter opdateres i alle relaterede tabeller.
Lad os for eksempel antage, at du blot vil ændre id for en speditør. Denne indstilling sikrer, at speditør-id er opdateret – ikke kun i tabellen Speditør, men også eventuelle andre tabeller, der er forbundet til det, og som også indeholder det pågældende speditør-id, for eksempel tabellen Ordrer.
Kaskadevis sletning af relaterede poster
Beslutningen om at vælge dette afhænger af, om du har brug at bevare poster i nogle tabeller, selvom de kan blive slettet fra andre tabeller.
Antag f.eks., at du sletter en spener. Hvis denne indstilling er valgt, sletter Access alle poster i alle tabeller, der refererer til det pågældende spegerings-id, herunder alle ordrer (i tabellen Ordrer), der er sendt af det pågældende spittegn. Du skal kun vælge denne indstilling, hvis du er sikker på, at du vil have din ordreoversigt slettet.
-
For at ændre relationen mellem tabellerne fra en indre joinforbindelse til en ydre joinforbindelse, skal du vælge knappen Jointype. Få mere at vide her Opret forespørgsler med ydre joinforbindelser.
Slette en tabelrelation
Bemærk!: Hvis de tabeller, du vil arbejde med, er i brug, skal du først lukke dem og andre åbne elementer, der bruger dem.
Sådan sletter du en tabelrelation:
-
Vælg Databaseværktøjer > Relationer.
-
Markér den linje, der forbinder de to relaterede tabeller.
Tip!: Hvis du ikke ser den relation, du ønsker, skal du vælge Alle relationer under gruppen Relationer på fanen Design.
-
Tryk på tasten Delete. Hvis du bliver bedt om at bekræfte, at du vil slette relationen, skal du vælge Ja.
Bemærk!: Når du fjerner en relation, fjerner du også understøttelse af referentiel integritet for denne relation, hvis dette er relevant. Access forhindrer ikke længere ændringer, der medfører uafhængige poster på mange-siden af en en til mange-relation.