En relasjon i Access gjør det enklere å kombinere data fra to ulike tabeller. Hver relasjon består av felter i to tabeller med tilsvarende data. Du kan for eksempel ha et Produkt-ID-felt i en Produkt-tabell og i en Ordredetaljer-tabell. Hver post i Ordredetaljer-tabellen har en Produkt-ID som tilsvarer en post i Produkt-tabellen med samme Produkt-ID.
Når du bruker relaterte tabeller i en spørring, sørger relasjonen for at Access bestemmer hvilke poster fra hver tabell som skal kombineres i resultatsettet. En relasjon kan også bidra til å hindre at data mangler, ved å sørge for at slettede data synkroniseres, og dette kalles referanseintegritet.
Før du arbeider med relasjoner, må du sørge for at du forstår bakgrunnsbegrepene. Hvis du vil ha mer informasjon, kan du se Veiledning for tabellrelasjoner og Komme i gang med tabellrelasjoner.
I denne artikkelen
Oversikt
Du oppretter en tabellrelasjon i en Access-database ved hjelp av en av disse metodene:
-
Legg til tabellene du vil relatere, i Relasjoner-vinduet, og dra deretter feltet for å relatere dem fra én tabell til den andre tabellen.
-
Dra et felt til et tabelldataark fra Feltliste-ruten.
Når du oppretter en relasjon mellom tabeller, behøver ikke fellesfelt å ha samme navn, selv om de ofte har samme navn. Fellesfeltene må ha samme datatype. Hvis primærnøkkelfeltet er et Autonummer-felt, kan imidlertid sekundærnøkkelfeltet også være et Tall-felt hvis egenskapen Feltstørrelse for begge felter er den samme. Du kan for eksempel koble et Autonummer-felt til et Tall-felt hvis egenskapen Feltstørrelse for begge feltene er satt til Langt heltall. Når begge fellesfeltene er Tall-felt, må de ha samme innstilling for egenskapen Feltstørrelse.
Opprette en tabellrelasjon ved å bruke Relasjoner-vinduet
-
Klikk på Relasjoner i Relasjoner-gruppen på Databaseverktøy-fanen.
-
Klikk Legg til tabeller i Relasjoner-gruppen på fanen Utforming av relasjoner.
-
Velg én eller flere tabeller eller spørringer, og klikk deretter på Legg til. Når du er ferdig med å legge til tabeller og spørringer på Relasjonsdokument-fanen, klikker du på Lukk.
-
Dra et felt (vanligvis primærnøkkelen) fra en tabell til fellesfeltet (sekundærnøkkelen) i den andre tabellen. Hvis du vil dra flere felt, holder du nede CTRL og klikker hvert felt, og deretter drar du dem.
DialogboksenRelasjoner vises her. -
Kontroller at feltnavnene som vises, er fellesfeltene for relasjonen. Hvis et feltnavn er feil, klikker du feltnavnet og velger det aktuelle feltet fra listen.Gjennomføre referanseintegritet.
Når du skal gjennomføre referanseintegritet for denne relasjonen, merker du av for Gjennomføre referanseintegritet. Hvis du vil ha mer informasjon om referanseintegritet, kan du se inndelingen -
Klikk på Opprett.
Access trekker en relasjonslinje mellom de to tabellene. Hvis du har merket av for Gjennomfør referanseintegritet, vises linjen som tykkere i hver ende. Hvis du har merket av for Gjennomføre referanseintegritet, vises også tallet 1 over den tykke delen av linjen på én side av relasjonslinjen, og uendeligsymbolet (∞) vises over den tykke delen av linjen på den andre siden, som vist på denne figuren.
Obs!:
-
Opprette en én-til-én-relasjon Begge fellesfeltene (vanligvis primærnøkkel- og sekundærnøkkelfeltene) må ha en unik indeks. Dette betyr at egenskapen Indeksert for disse feltene skal settes til Ja (ingen dubletter). Hvis begge feltene har en unik indeks, oppretter Access en én-til-én-relasjon.
-
Opprette en én-til-mange-relasjon Feltet på den ene siden (vanligvis primærnøkkelen) i relasjonen må ha en unik indeks. Dette betyr at egenskapen Indeksert for dette feltet skal settes til Ja (ingen duplikater). Feltet på mange-siden skal ikke ha en unik indeks. Det kan ha en indeks, men den må tillate dubletter. Dette betyr at egenskapen Indeksert for dette feltet skal settes til enten Nei eller Ja (duplikater er OK). Når ett felt har en unik indeks og det andre ikke har en unik indeks, opprettes en én-til-mange-relasjon.
-
Opprette en tabellrelasjon ved å bruke Feltliste-ruten til å legge til et felt
Du kan legge til et felt i en eksisterende tabell som er åpen i dataarkvisning, ved å dra feltet fra Feltliste-ruten. Feltliste-ruten viser felter som er tilgjengelige i relaterte tabeller, og den viser felter som er tilgjengelige i andre tabeller i databasen.
Når du drar et felt fra en annen (ikke-relatert) tabell og deretter fullfører oppslagsveiviseren, opprettes en ny én-til-mange-relasjon automatisk mellom tabellen i Feltliste-ruten og tabellen som du har dratt feltet til. Denne relasjonen, som er opprettet i Access, gjennomfører ikke referanseintegritet som standard. Hvis du vil gjennomføre referanseintegritet, må du redigere relasjonen. Se inndelingen Redigere en relasjon for mer informasjon.
Åpne en tabell i dataarkvisning
-
Dobbeltklikk på tabellen i navigasjonsruten.
Åpne Feltliste-ruten
-
Trykk ALT+F8. Feltliste-ruten vises.
Feltliste-ruten viser alle de andre tabellene i databasen, gruppert i kategorier. Når du arbeider med en tabell i dataarkvisning, viser Access felter i én av to kategorier i Feltliste-ruten: felter som er tilgjengelige i relaterte tabeller og felter som er tilgjengelige i andre tabeller. Den første kategorien viser alle tabellene som har en relasjon med tabellen du arbeider med for øyeblikket. Den andre kategorien viser alle tabellene som tabellen ikke har relasjoner med.
Når du klikker plusstegnet (+) ved siden av et tabellnavn i Feltliste-ruten, ser du en liste over alle feltene som er tilgjengelige i denne tabellen. Hvis du vil legge til et felt i tabellen, drar du det ønskede feltet fra Feltliste-ruten til tabellen i dataarkvisning.
Legge til et felt og opprette en relasjon fra Feltliste-ruten
-
Trykk på ALT+F8 mens tabellen er åpen i dataarkvisning. Feltliste-ruten vises.
-
Klikk på plusstegnet (+) ved siden av et tabellnavn for å vise feltlisten i denne tabellen, under Tilgjengelige felter i andre tabeller.
-
Dra det ønskede feltet fra Feltliste-ruten til tabellen som er åpen i dataarkvisning.
-
Når innsettingslinjen vises, slipper du feltet der det skal være.
Oppslagsveiviseren starter.
-
Følg instruksjonene for å fullføre oppslagsveiviseren.
Feltet vises i tabellen i dataarkvisning.
Når du drar et felt fra en annen (ikke-relatert) tabell og deretter fullfører oppslagsveiviseren, opprettes en ny én-til-mange-relasjon automatisk mellom tabellen i Feltliste og tabellen som du har dratt feltet til. Denne relasjonen, som er opprettet i Access, gjennomfører ikke referanseintegritet som standard. Hvis du vil gjennomføre referanseintegritet, må du redigere relasjonen. Se inndelingen Redigere en relasjon for mer informasjon.
Redigere en relasjon
Du endrer en relasjon ved å velge den i Relasjoner-vinduet og deretter redigere den.
-
Plasser markøren nøyaktig slik at den peker på relasjonslinjen, og klikk deretter på linjen for å merke den.
Relasjonslinjen vises som tykkere når den er merket.
-
Dobbeltklikk relasjonslinjen mens den er merket.
– eller –
Klikk Rediger relasjoner i Verktøy-gruppen på fanen Utforming for relasjoner.
Dialogboksen Redigere relasjoner vises.
Åpne dialogboksen Redigere relasjoner
-
Klikk på Relasjoner i Relasjoner-gruppen på Databaseverktøy-fanen.
-
Klikk Alle relasjoner i Relasjoner-gruppen på fanen Utforming for relasjoner.
Alle tabeller og relasjoner vises med relasjonslinjer. Obs! Skjulte tabeller (tabeller der det er merket av for Skjult i dialogboksen Egenskaper for tabellen) med tilhørende relasjoner vises ikke, med mindre det er merket av for Vis skjulte objekter i dialogboksen Alternativer for navigering.
-
Klikk relasjonslinjen for relasjonen som du vil endre. Relasjonslinjen vises som tykkere når den er merket.
-
Dobbeltklikk relasjonslinjen.
-eller-
Klikk Rediger relasjoner i Verktøy-gruppen på fanen Utforming for relasjoner.
Dialogboksen Redigere relasjoner vises.
-
Utfør endringene, og klikk deretter OK.
I dialogboksen Redigere relasjoner kan du endre en tabellrelasjon. Du kan endre tabellene eller spørringene på begge sider av relasjonen eller feltene på begge sider. Du kan også angi sammenføyningstypen, eller du kan gjennomføre referanseintegritet og velge et gjennomgripende alternativ. Hvis du vil ha mer informasjon om sammenføyningstypen og hvordan du angir den, kan du se delen Angi sammenføyningstypen. Hvis du vil ha mer informasjon om hvordan du gjennomfører referanseintegritet og velger et gjennomgripende alternativ, se delen Gjennomføre referanseintegritet.
Angi sammenføyningstypen
Når du definerer en tabellrelasjon, overføres informasjon om relasjonen til spørringsutformingene. Hvis du for eksempel definerer en relasjon mellom to tabeller, og du deretter oppretter en spørring som bruker disse tabellene, velger Access automatisk samsvarende felter som standard, basert på feltene angitt i relasjonen. Du kan overstyre disse innledende standardverdiene i spørringen, men verdiene som angis av relasjonen, er ofte riktige. Det kan være nyttig og tidsbesparende å angi standarder ved å opprette relasjoner, fordi du ofte finner samsvar mellom og setter sammen data fra flere tabeller i alle databaser, unntatt de minst kompliserte.
En spørring for flere tabeller kombinerer informasjon fra flere tabeller ved å finne samsvar mellom verdiene i fellesfelt. Operasjonen som finner samsvar mellom og kombinerer verdier, kalles en sammenføyning. Anta for eksempel at du vil vise kundeordrer. Du oppretter en spørring som føyer sammen Kunder-tabellen og Ordrer-tabellen, i feltet Kunde-ID. Spørringsresultatet inneholder kundeinformasjon og ordreinformasjon for bare de radene der et samsvar ble funnet.
Én av verdiene som du kan angi for hver relasjon, er sammenføyningstypen. Koblingstypen informerer Access om hvilke poster som skal inkluderes i et spørringsresultat. Anta for eksempel igjen at du har en spørring som kobler sammen Kunder-tabellen og Ordrer-tabellen i fellesfeltene som representerer Kunde-ID-en. Spørringen bruker standardsammenføyningstypen (kalt en indre kobling), og den returnerer bare Kunde-radene og Ordre-radene der fellesfeltene (også kalt sammenføyde felt) er like.
Anta imidlertid at du vil inkludere alle kunder, også kunder som ikke ennå har lagt inn ordrer. Når du skal gjøre dette, må du endre koblingstypen fra en indre kobling til det som kalles en venstre ytre kobling. En venstre ytre kobling returnerer alle radene i tabellen på venstre side i relasjonen og bare dem som samsvarer, i tabellen til høyre. En høyre ytre sammenføyning returnerer alle radene til høyre, og bare dem som samsvarer mot venstre.
Obs!: I dette tilfellet refererer "venstre" og "høyre" til plasseringen av tabellene i dialogboksen Redigere relasjoner, ikke i Relasjoner-vinduet.
Du bør vurdere hvilket resultat du hyppigst ønsker fra en spørring som føyer sammen tabellene i denne relasjonen, og angi sammenføyningstypen deretter.
Angi sammenføyningstypen
-
Klikk Sammenføyningstype i dialogboksen Redigere relasjoner.
Dialogboksen Sammenføyningsegenskaper vises.
-
Velg valget ditt, og klikk deretter OK.
Tabellen nedenfor (Kunder- og Ordrer-tabellene brukes) viser de tre valgene som vises i dialogboksen Koblingsegenskaper, typen kobling som brukes, og om alle rader eller samsvarende rader returneres for hver tabell.
Valg |
Relasjonssammenføyning |
Venstre tabell |
Høyre tabell |
---|---|---|---|
1. Ta med bare de radene der de sammenføyde feltene er like i begge tabeller. |
Indre sammenføyning |
Samsvarende rader |
Samsvarende rader |
2. Ta med ALLE poster fra Kunder og de postene i Ordrer som har like verdier i de sammenføyde feltene. |
Venstre ytre sammenføyning |
Alle rader |
Samsvarende rader |
3. Ta med ALLE poster fra Ordrer og de postene i Kunder som har like verdier i de sammenføyde feltene. |
Høyre ytre sammenføyning |
Samsvarende rader |
Alle rader |
Når du velger alternativ 2 eller alternativ 3, vises en pil på relasjonslinjen. Denne pilen peker på siden av relasjonen som bare viser samsvarende rader.
Utføre endringene i dialogboksen Sammenføyningsegenskaper
-
Klikk Relasjoner i Relasjoner-gruppen i kategorien Databaseverktøy.
-
Klikk Alle relasjoner i Relasjoner-gruppen på fanen Utforming for relasjoner.
Alle tabeller som har relasjoner, vises med relasjonslinjer. Obs! Skjulte tabeller (tabeller der det er merket av for Skjult i dialogboksen Egenskaper for tabellen) med tilhørende relasjoner vises ikke, med mindre det er merket av for Vis skjulte objekter i dialogboksen Alternativer for navigering. -
Klikk relasjonslinjen for relasjonen som du vil endre. Relasjonslinjen vises som tykkere når den er merket.
-
Dobbeltklikk relasjonslinjen. Dialogboksen Redigere relasjoner vises.
-
Klikk på Koblingstype.
-
Velg et alternativ i dialogboksen Sammenføyningsegenskaper , og klikk deretter OK.
-
Utfør eventuelt flere endringer med relasjonen, og klikk deretter OK.
Gjennomføre referanseintegritet
Formålet med referanseintegritet er å forhindre isolerte poster – poster som refererer til andre poster, som ikke lenger eksisterer. Du gjennomfører referanseintegritet ved å aktivere den for en tabellrelasjon. Når denne er gjennomført, avviser Access operasjoner som bryter med referanseintegritet for en tabellrelasjon. Dette betyr at Access avviser oppdateringer som endrer målet for en referanse, og slettinger som fjerner målet for en referanse. Hvis du vil la Access overføre referansemessige oppdateringer og slettinger, slik at alle relaterte rader endres tilsvarende, kan du se inndelingen Angi gjennomgripende alternativer.
Aktivere eller deaktivere referanseintegritet
-
Klikk på Relasjoner i Relasjoner-gruppen på Databaseverktøy-fanen.
-
Klikk Alle relasjoner i Relasjoner-gruppen på fanen Utforming for relasjoner.
Alle tabeller og relasjoner vises med relasjonslinjer. Obs! Skjulte tabeller (tabeller der det er merket av for Skjult i dialogboksen Egenskaper for tabellen) med tilhørende relasjoner vises ikke, med mindre det er merket av for Vis skjulte objekter i dialogboksen Alternativer for navigering. -
Klikk relasjonslinjen for relasjonen som du vil endre. Relasjonslinjen vises som tykkere når den er merket.
-
Dobbeltklikk relasjonslinjen. Dialogboksen Redigere relasjoner vises.
-
Merk eller fjern merket for Gjennomføre referanseintegritet.
-
Utfør eventuelle andre endringer i relasjonen, og klikk deretter på OK.
Hvis du gjennomfører referanseintegritet, gjelder disse reglene:
-
Du kan ikke angi en verdi i sekundærnøkkelfeltet til en relatert tabell hvis denne verdien ikke finnes i primærnøkkelfeltet for primærtabellen. Hvis du gjør dette, opprettes isolerte poster.
-
Du kan ikke slette en post i en primærtabell hvis samsvarende poster eksisterer i en relatert tabell. Du kan for eksempel ikke slette en ansattpost fra Ansatte-tabellen hvis det finnes ordrer som er tilordnet den ansatte i Ordrer-tabellen. Du kan imidlertid velge å slette en primærpost og alle relaterte poster i én operasjon ved å merke av for Slett relaterte poster gjennomgripende.
-
Du kan ikke endre en primærnøkkelverdi i primærtabellen hvis dette forårsaker isolerte poster. Du kan for eksempel ikke endre et ordrenummer i Ordrer-tabellen hvis det finnes linjeelementer tilordnet denne ordren, i Ordredetaljer-tabellen. Du kan velge å oppdatere en primærpost og alle relaterte poster i én operasjon ved å merke av for Oppdater relaterte felter gjennomgripende.
Obs!: Hvis du har problemer med å aktivere referanseintegritet, bør du legge merke til at de følgende betingelsene må være oppfylt for å gjennomføre referanseintegritet:
-
Fellesfeltet fra den primære tabellen må være en primærnøkkel eller ha en unik indeks.
-
Fellesfeltene må ha samme datatype. Det eneste unntaket er at et Autonummer-felt kan være relatert til et Tall-felt som har innstillingen Langt heltall for egenskapen Feltstørrelse.
-
Begge tabeller finnes i samme Access-database. Referanseintegritet kan ikke gjennomføres for koblede tabeller. Hvis kildetabellene er i Access-format, kan du imidlertid åpne databasen der de er lagret, og aktivere referanseintegritet i denne databasen.
-
Angi gjennomgripende alternativer
Det kan oppstå en situasjon der du har behov for å endre verdien på én-siden i en relasjon. I slike tilfeller må Access automatisk oppdatere alle rader som påvirkes, som en del av én enkelt operasjon. På denne måten fullføres oppdateringen helt, slik at databasen ikke er inkonsekvent – med noen rader som er oppdatert, og andre som ikke er det. Du kan unngå dette problemet i Access ved hjelp av alternativet Oppdater relaterte felter gjennomgripende. Når du gjennomfører referanseintegritet og velger alternativet Oppdater relaterte felter gjennomgripende, og deretter oppdaterer en primærnøkkel, oppdaterer Access automatisk alle felter som refererer til primærnøkkelen.
Det kan også hende at du må slette en rad og alle relaterte poster, for eksempel en speditørpost og alle relaterte ordrer for denne speditøren. På grunn av dette støtter Access alternativet Slett relaterte poster gjennomgripende. Når du gjennomfører referanseintegritet og merker av for Slett relaterte poster gjennomgripende, sletter Access automatisk alle poster som refererer til primærnøkkelen når du sletter posten som inneholder primærnøkkelen.
Aktivere eller deaktivere gjennomgripende oppdatering eller gjennomgripende sletting
-
Klikk på Relasjoner i Relasjoner-gruppen på Databaseverktøy-fanen.
-
Klikk Alle relasjoner i Relasjoner-gruppen på fanen Utforming for relasjoner.
Alle tabeller og relasjoner vises med relasjonslinjer. Obs! Skjulte tabeller (tabeller der det er merket av for Skjult i dialogboksen Egenskaper for tabellen) med tilhørende relasjoner vises ikke, med mindre det er merket av for Vis skjulte objekter i dialogboksen Alternativer for navigering. -
Klikk relasjonslinjen for relasjonen som du vil endre. Relasjonslinjen vises som tykkere når den er merket.
-
Dobbeltklikk relasjonslinjen.
DialogboksenRelasjoner vises her. -
Merk av for Gjennomføre referanseintegritet.
-
Merk av for Oppdater relaterte felter gjennomgripende eller Slett relaterte poster gjennomgripende, eller merk av for begge.
-
Utfør eventuelt flere endringer med relasjonen, og klikk deretter OK.
Obs!: Hvis primærnøkkelen er et Autonummer-felt, har det ingen virkning hvis du merker av for Oppdater relaterte felt gjennomgripende, ettersom du ikke kan endre verdien i et Autonummer-felt.
Slette en tabellrelasjon
Viktig!: Når du fjerner en relasjon, fjerner du også støtte for referanseintegritet for denne relasjonen hvis dette er aktivert. Access vil derfor ikke lenger automatisk forhindre opprettingen av isolerte poster på mange-siden i en relasjon.
Hvis du vil fjerne en tabellrelasjon, må du slette relasjonslinjen i Relasjoner-vinduet. Plasser markøren slik at den peker på relasjonslinjen, og klikk deretter linjen. Relasjonslinjen ser tykkere ut når den er merket. Trykk DEL mens relasjonslinjen er merket.
-
Klikk på Relasjoner i Relasjoner-gruppen på Databaseverktøy-fanen.
-
Klikk Alle relasjoner i Relasjoner-gruppen på fanen Utforming for relasjoner.
Alle tabeller og relasjoner vises med relasjonslinjer. Obs! Skjulte tabeller (tabeller der det er merket av for Skjult i dialogboksen Egenskaper for tabellen) med tilhørende relasjoner vises ikke, med mindre det er merket av for Vis skjulte objekter i dialogboksen Alternativer for navigering. -
Klikk relasjonslinjen for relasjonen som du vil slette. Relasjonslinjen ser tykkere ut når den er merket.
-
Trykk DEL.
-
Meldingen Er du sikker på at du vil slette de valgte relasjonene permanent fra databasen? kan vises i Access. Hvis denne bekreftelsesmeldingen vises, klikker du på Ja.
Obs!: Hvis en av tabellene som brukes i tabellrelasjonen er i bruk, kanskje av en annen person eller prosess eller i et åpent databaseobjekt, for eksempel et skjema, kan du ikke slette relasjonen. Du må lukke alle åpne objekter som bruker disse tabellene før du kan prøve å fjerne relasjonen.