Vejledning i tabelrelationer

Vigtigt: Denne artikel er maskinoversat. Se ansvarsfraskrivelsen. Du kan finde den engelske version af denne artikel her til din orientering.

Et godt databasedesign mål er at fjerne overflødige data (duplikerede data). For at opnå dette mål skal inddele du dine data i mange emne-baserede tabeller, så hvert enkelt faktum er repræsenteret kun én gang. Du derefter giver adgang med den måde at samle opdelte oplysningerne tilbage – du gør dette ved at placere almindelige felter i relaterede tabeller. For at udføre dette trin korrekt, skal men du først forstå relationerne mellem tabellerne og derefter angive disse relationer i databasen.

Få mere at vide artiklen om databasedesign.

I denne artikel omhandler ikke relationer i en webdatabase. Webdatabaser understøtter ikke vinduet relationer. Du kan bruge opslagsfelter til at oprette relationer i en webdatabase. Få mere at vide artiklen opbygge en database til deling på internettet.

Denne artikel indeholder

Introduktion

Typer af tabelrelationer

Hvorfor skal der oprettes tabelrelationer?

Forstå referentiel integritet

Få vist tabelrelationer

Oprette en tabelrelation

Slette en tabelrelation

Ændre en tabelrelation

Gennemtvinge referentiel integritet

Introduktion

Når du har oprettet en tabel for hvert emne i databasen, skal du angive adgang med den måde, som samler disse oplysninger tilbage igen når det er nødvendigt. Du kan gøre dette, ved at placere almindelige felter i relaterede tabeller, og ved at definere relationer mellem tabellerne. Du kan derefter oprette forespørgsler, formularer og rapporter, der viser oplysninger fra flere tabeller på én gang. For eksempel indeholder den formular, der er vist her oplysninger, der er tegnet fra flere tabeller:

Formularen Ordrer viser relaterede oplysninger fra fem tabeller på én gang

1. Oplysningerne i denne formular stammer fra tabellen Kunder...

2. ...tabellen Ordrer...

3. ...tabellen Produkter...

4. ...og tabellen Ordredetaljer.

Kundenavnet i feltet Faktura til hentes fra tabellen Kunder, værdierne Ordre-id og Ordredata kommer fra tabellen Ordrer, produktnavnet kommer fra tabellen Produkter, og værdierne Pris pr enhed og Antal kommer fra tabellen Ordrespecifikationer. Disse tabeller er kædet sammen på forskellige måder for at hente oplysninger fra dem til formularen.

I eksemplet ovenfor skal felterne i tabellerne koordineres, så de viser oplysninger om den samme ordre. De koordineres ved hjælp af tabelrelationer. En tabelrelation sammenholder data i nøglefelter, der ofte er et felt, som har samme navn i begge felter. I de fleste tilfælde fungerer disse tilsvarende felter som den primære nøgle i den ene, hvilket giver hver post et entydigt id, og som en fremmed nøgle i den anden tabel. Medarbejdere kan f.eks. forbindes med ordrer, de er ansvarlige for, ved at oprette en tabelrelation mellem felterne Medarbejdernr. i tabellerne Medarbejdere og Ordrer.

Medarbejder-id bruges som primær nøgle i tabellen Medarbejdere og fremmed nøgle i tabellen Ordrer.

1. Medarbejder-id vises i begge tabeller - som primær nøgle ...

2. ... og som fremmed nøgle.

Toppen af siden

Typer af tabelrelationer

Der findes tre typer tabelrelationer.

  • En en-til-mange-relation

    Overvej en ordresporing database, der indeholder en kundetabel og en Ordretabel. En kunde kan placere et vilkårligt antal ordrer. Det følger, for en kunde, der er repræsenteret i tabellen Kunder, der kan være mange ordrer, der er repræsenteret i tabellen Ordrer. Forholdet mellem tabellen kunder og tabellen Ordrer er derfor en en-til-mange-relation.

    Få den primære nøgle på "en"-siden af relationen for at repræsentere en en-til-mange-relation i databasedesignet, og tilføje den som et ekstra felt eller felter til tabellen på "mange"-siden af relationen. I dette tilfælde, for eksempel du tilføje et nyt felt-id-feltet fra tabellen kunder – for ordrer tabel, og kald den kunde-ID. Access kan derefter bruge tallets kunde-ID i tabellen ordrer for at finde de rette kunde for hver ordre.

  • En mange-til-mange-relation

    Overvej at forholdet mellem en tabel og en Ordretabel. En enkelt ordre kan indeholde mere end ét produkt. Et enkelt produkt kan på den anden side vises på mange ordrer. Derfor for hver post i tabellen Ordrer, kan der være mange poster i tabellen produkter. Desuden for hver post i tabellen produkter, kan der være mange poster i tabellen Ordrer. Denne type relation kaldes en mange-til-mange-relation, fordi for et produkt, der kan være mange ordrer og til en hvilken som helst rækkefølge, kan der være mange produkter. Bemærk, at registrere eksisterende mange-til-mange-relationer mellem tabellerne, det er vigtigt, at du overvejer begge sider af relationen.

    For at repræsentere en mange-til-mange-relation skal du oprette en tredje tabel, ofte kaldet en samlingstabel, der opdeler mange-til-mange-relationen i to en-til-mange-relationer. Du skal indsætte den primære nøgle fra hver af de to tabeller i den tredje tabel. Det medfører, at hver forekomst af relationen registreres i den tredje tabel. Tabellen Ordrer og tabellen Produkter har f.eks. en mange-til-mange-relation, der defineres ved at oprette to en-til-mange-relationer til tabellen Ordrespecifikationer. En ordre kan bestå af mange produkter, og hvert produkt kan forekomme i mange ordrer.

  • En en-til-en-relation

    Hver post i den første tabel kan have kun én tilsvarende post i den anden tabel i en til-en relation, og hver post i den anden tabel kan have kun én tilsvarende post i den første tabel. Denne type relation er ikke almindelige, fordi oftest bruger de oplysninger, der er relateret på denne måde er gemt i den samme tabel. Du kan bruge en til-en relation til at opdele en tabel med mange felter til at isolere en del af en tabel af sikkerhedsmæssige årsager eller til at gemme oplysninger, der gælder kun for et undersæt af den primære tabel. Når du har en sådan relation, skal begge tabeller dele et fælles felt.

Toppen af siden

Hvorfor skal der oprettes tabelrelationer?

Du kan oprette tabelrelationer eksplicit ved hjælp af vinduet relationer eller ved at trække et felt fra ruden Feltliste. Access bruger tabelrelationer til at vide, hvordan du joinforbinde tabeller, når du skal bruge dem i et databaseobjekt. Der er flere årsager, hvorfor du skal oprette tabelrelationer, før du opretter andre databaseobjekter, som formularer, forespørgsler og rapporter.

  • Tabelrelationer giver oplysninger til forespørgselsdesign

    Hvis du vil arbejde med poster fra mere end én tabel, skal du ofte oprette en forespørgsel, der forbinder tabellerne. Forespørgslen fungerer ved at sammenligne værdier i primær nøgle-feltet på den første tabel med en fremmed nøgle-feltet i den anden tabel. For eksempel for at returnere rækker, hvor der står alle ordrer for hver kunde, skal oprette du en forespørgsel, der forbinder tabellen Kunder med tabellen Ordrer, der er baseret på feltet Kunde-ID. I vinduet relationer, kan du manuelt angive felterne for at deltage i. Men hvis du allerede har en relation, der er defineret mellem tabellerne, leverer Access standard joinforbindelsen, baseret på eksisterende tabelrelationen. Hvis du bruger en af forespørgselsguiderne, bruger Access desuden oplysningerne om den indsamler fra tabelrelationer du allerede har defineret til at præsentere du med nogen valg og at udfylde på forhånd egenskabsindstillinger med relevante standardværdier.

  • Tabelrelationer giver oplysninger til formular- og rapportdesign

    Når du designer en formular eller rapport, bruger Access oplysningerne om den indsamler fra tabelrelationer du allerede har defineret til at præsentere du med nogen valg og at udfylde på forhånd egenskabsindstillinger med relevante standardværdier.

  • Tabelrelationer er det grundlag, hvorpå du kan gennemtvinge referentiel integritet for at undgå horeungeposter i databasen. En horeungepost er en post, der henviser til en post, der ikke findes, f.eks. en ordrepost, der henviser til en kundepost, der ikke findes.

    Når du designer en database, inddele oplysningerne i tabeller, hver især har en primær nøgle. Derefter kan du føje fremmede nøgler til relaterede tabeller, som henviser til de primære nøgler. Disse fremmed nøgle-primær nøgle par udgangspunktet for tabelrelationer og forespørgsler med flere tabeller. Det er vigtigt, derfor, at disse fremmed nøgle-primær nøgle referencer forbliver synkroniseret. Referentiel integritet hjælper med at sikre dig, der refererer til Hold synkroniseret og er afhængig af tabelrelationer.

Toppen af siden

Forstå referentiel integritet

Når du designer en database, kan du dele dine oplysninger i mange emne-baserede tabeller for at minimere overflødige data. Du kan derefter giver adgang med den måde, som til at hente data sammen igen ved at placere almindelige felter i relaterede tabeller. For eksempel til at repræsentere en en-til-mange-relation du tager den primære nøgle fra tabellen relationens en- og tilføje den som et ekstra felt til tabellen "mange". Hvis du vil samle dataene tilbage, Access tager værdien i tabellen "mange" og søger efter den tilsvarende værdi i tabellen relationens en. På denne måde henviser til værdier i tabellen "mange" de tilsvarende værdier i tabellen "en".

Du har f.eks. en en-til-mange-relation mellem Speditionsfirmaer og Ordrer, og du vil slette et speditionsfirma. Hvis det speditionsfirma, du vil slette, har ordrer i tabellen Ordrer, bliver disse ordrer "horeunger", når du sletter posten for speditionsfirmaet. Ordrerne indeholder stadig et speditionsfirma-id, men id'et er ikke længere gyldigt, fordi den post, det henviser til, ikke længere findes.

Formålet med referentiel integritet er at forhindre elementer uden overordnede og holde henvisningerne synkroniserede, så denne hypotetiske situation aldrig opstår.

Du kan gennemtvinge referentiel integritet ved at aktivere den til en tabelrelation (se Gennemtving referentiel integritet for en trinvis vejledning). Når træder i kraft, afviser Access alle handlinger, der ville krænker referentiel integritet for tabelrelationen. Det betyder, at Access afviser begge opdateringer, der ændres destinationen for en reference, og sletninger, der fjerner destinationen for en reference. Dog kan du muligvis helt korrekt behov for at ændre den primære nøgle til en afsender, der indeholder ordrer i tabellen Ordrer. I disse tilfælde er du virkelig behøver for at få adgang til automatisk at opdatere alle udføres rækkerne som en del af en enkelt handling. På den måde, Access sikrer, at opdateringen er fuldført i fuld, så din database ikke er tilbage i en inkonsekvent tilstand, med nogle rækker, der er opdateret og nogle ikke. Access understøtter derfor indstillingen kaskadevis opdatering af relaterede felter. Når du gennemtvinge referentiel integritet og vælge indstillingen kaskadevis opdatering af relaterede felter, og du derefter opdatere en primær nøgle, opdaterer Access automatisk alle felter, som henviser til den primære nøgle.

Det er også muligt, kan du har et gyldigt behov for at slette en række og alle de relaterede poster – for eksempel en afsender post og alle relaterede ordrer for den pågældende afsender. Access understøtter derfor indstillingen Kaskadevis sletning af relaterede poster. Når du gennemtvinge referentiel integritet og vælge indstillingen Kaskadevis sletning af relaterede poster, og du derefter sletter en post på primær nøgle-siden af relationen, slettes automatisk alle poster, der refererer til den primære nøgle.

Toppen af siden

Få vist tabelrelationer

Klik på relationer under fanen Databaseværktøjer for at få vist din tabelrelationer. Vinduet Relationer åbnes og viser alle eksisterende relationer. Hvis der endnu er ikke defineret nogen tabelrelationer, og du er ved at åbne vinduet relationer for første gang, bliver du spurgt, om du kan tilføje en tabel eller forespørgsel i vinduet.

Åbne vinduet Relationer

  1. Klik på Åbn under fanen Filer.

  2. Vælg og åbn databasen i dialogboksen Åbn.

  3. Klik på Relationer i gruppen Relationer under fanen Databaseværktøjer.

  4. Hvis databasen indeholder relationer, vises vinduet relationer. Hvis databasen ikke indeholder nogen relationer, og du er ved at åbne vinduet relationer for første gang, vises dialogboksen Vis tabel. Klik på Luk for at lukke dialogboksen.

  5. Klik på Vis alle relationer i gruppen Relationer under fanen Design.

    Dette viser alle de definerede relationer i databasen. Bemærk, at skjulte tabeller (tabeller, skjult Markér afkrydsningsfeltet i dialogboksen Egenskaber for tabellens er markeret) og deres relationer ikke vises medmindre afkrydsningsfeltet Vis skjulte objekter er markeret i dialogboksen Navigationsindstillinger.

En tabelrelation vises med en relationslinje mellem tabellerne i vinduet Tabeller. En relation, der ikke gennemtvinger referentiel integritet, vises som en tynd linje mellem de fælles felter, der understøtter relationen. Når du vælger relationen ved at klikke på dens linje, bliver linjen tykkere for at angive, at den er valgt. Hvis du gennemtvinger referentiel integritet for denne relation, bliver linjen tykkere i hver ende. Tallet 1 vises desuden over den tykke del af linjen på den ene side af relationen og symbolet for uendelighed (8) vises over den tykke del af linjen på den anden side.

Når vinduet Relationer er aktivt, kan du vælge fra følgende kommandoer på båndet:

I gruppen Funktioner under fanen Design:

  • Rediger relationer    Åbner dialogboksen Rediger relationer. Når du markerer en relationslinje, kan du klikke på Rediger relationer for at ændre tabelrelationen. Du kan også dobbeltklikke på relationslinjen.

  • Ryd layout    Fjerner alle tabeller og relationer, der vises i vinduet Relationer. Bemærk, at kommandoen kun skjuler tabellerne og relationerne - den sletter dem ikke.

  • Relationsrapport    Opretter en rapport, der viser tabellerne og relationerne i databasen. Rapporten viser kun de tabeller og relationer, der ikke er skjult i vinduet Relationer.

I gruppen Relationer under fanen Design:

  • Vis tabel    Åbner dialogboksen Vis tabel, så du kan vælge de tabeller og forespørgsler, der skal vises i vinduet Relationer.

  • Skjul tabel    Skjuler den markerede tabel i vinduet Relationer.

  • Vis direkte relationer    Viser alle relationer og relaterede tabeller for den markerede tabel i vinduet Relationer, hvis de ikke allerede vises.

  • Vis alle relationer    Viser alle relationer og relaterede tabeller i databasen i vinduet Relationer. Bemærk, at skjulte tabeller (tabeller, hvor afkrydsningsfeltet Skjult er markeret i dialogboksen Egenskaber for tabellen) og deres relationer ikke vises, medmindre du har markeret Vis skjulte objekter i dialogboksen Navigationsindstillinger.

  • Luk    Lukker vinduet Relationer. Hvis du har ændret layoutet i vinduet Relationer, bliver du spurgt, om du vil gemme ændringerne.

Toppen af siden

Oprette en tabelrelation

Du kan oprette en tabelrelation ved at bruge vinduet Relationer eller ved at trække et felt til et dataark fra ruden Feltliste. Når du opretter en relation mellem tabeller, skal de fælles felter ikke nødvendigvis have samme navne, selvom det ofte er tilfældet. Felterne skal have samme datatype. Hvis feltet med den primære nøgle er et autonummereringsfelt, kan feltet med den fremmede nøgle dog være et talfelt, hvis egenskaben Feltstørrelse er den samme for begge felter. Du kan f.eks. relatere et autonummereringsfelt og et talfelt, hvis egenskaben Feltstørrelse for begge felter er Langt heltal. Selv når begge de tilsvarende felter er talfelter, skal de have den samme egenskabsindstilling for Feltstørrelse.

Oprette en tabelrelation ved hjælp af vinduet Relationer

  1. Klik på Åbn under fanen Filer.

  2. Vælg og åbn databasen i dialogboksen Åbn.

  3. Klik på Relationer i gruppen Relationer under fanen Databaseværktøjer.

  4. Hvis du endnu ikke har defineret relationer, vises dialogboksen Vis tabel automatisk. Hvis den ikke vises, skal du klikke på Vis tabel i gruppen Relationer under fanen Design.

I dialogboksen Vis tabel vises alle tabeller og forespørgsler i databasen. Klik på Tabeller, hvis du kun vil se tabeller. Klik på Forespørgsler, hvis du kun vil se forespørgsler. Klik på Begge, hvis du vil se både tabeller og forespørgsler.

  1. Markér en eller flere tabeller eller forespørgsler, og klik derefter på Tilføj. Når du er færdig med at føje tabeller og forespørgsler til vinduet Relationer, skal du klikke på Luk.

  2. Træk et felt (som regel den primære nøgle) fra den ene tabel til det fælles felt (den fremmede nøgle) i den anden tabel. Hvis du vil flytte flere felter, skal du trykke på Ctrl, klikke på de enkelte felter og trække dem.

Dialogboksen Rediger relationer åbnes.

  1. Kontroller, at de viste feltnavne er de fælles felter for relationen. Hvis et felt er forkert, skal du klikke på feltnavnet og vælge et nyt felt på listen.

Hvis du vil gennemtvinge referentiel integritet for denne relation, skal du markere afkrydsningsfeltet Gennemtving referentiel integritet. Du kan finde flere oplysninger om referentiel integritet i afsnittene Forstå referentiel integritet og Gennemtvinge referentiel integritet.

  1. Klik på Opret.

    Relationslinjen tegnes mellem de to tabeller, Hvis du har markeret afkrydsningsfeltet Gennemtving referentiel integritet, er linjen tykkere i begge ender. Hvis du har markeret afkrydsningsfeltet Gennemtving referentiel integritet vises tallet 1 over den tykke del af linjen på den ene side af relationen, og symbolet for uendelighed (8) vises over den tykke del af linjen på den anden side.

    Bemærkninger: 

    • Sådan oprettes en en til en-relation    Begge af de almindelige felter (som regel den primære nøgle og fremmed nøgle-felter) skal have et entydigt indeks. Det betyder, at egenskaben indekseret for disse felter skal være angivet til Ja-ingen dubletter. Hvis begge felter har et entydigt indeks, oprettes en en til en-relation.

    • Sådan oprettes en en-til-mange-relation    Feltet på relationens en-side (typisk den primære nøgle) af relationen skal have et entydigt indeks. Det betyder, at egenskaben indekseret for dette felt skal du vælge Ja-ingen dubletter. Feltet på "mange"-siden skal ikke har et entydigt indeks. Det kan have et indeks, men den skal Tillad oprettelse af dubletter. Det betyder, at egenskaben indekseret for dette felt skal du vælge enten ingeneller Ja (dubletter). Når ét felt har et entydigt indeks, og den anden ikke gør, oprettes en en-til-mange-relation.

Oprette en tabelrelation vha. ruden Feltliste

Du kan tilføje et felt til en eksisterende tabel, der er åben i dataarkvisning ved at trække det fra ruden Feltliste. Ruden Feltliste viser tilgængelige felter i relaterede tabeller og felter også tilgængelig i andre tabeller. Når du trækker et felt fra en "andet" (ikke-relateret) tabel og derefter fuldføre guiden Opslag, oprettes der automatisk en ny en-til-mange-relation mellem tabellen i ruden Feltliste og den tabel, som du har trukket feltet. Denne relation, der er oprettet i Access, ikke gennemtvinge referentiel integritet som standard. Hvis du vil gennemtvinge referentiel integritet, skal du redigere relationen. I afsnittet ændre en tabelrelation kan finde flere oplysninger.

Åbne en tabel i dataarkvisning

  1. Klik på Åbn under fanen Filer.

  2. Vælg og åbn databasen i dialogboksen Åbn.

  3. Højreklik på den tabel, hvor du vil tilføje feltet og oprette relationen, i navigationsruden, og klik derefter på Åbn.

Åbne ruden Feltliste

  • Tryk på Alt+F8.

    Ruden Feltliste vises.

Feltlisten rude viser alle de andre tabeller i databasen, der er inddelt i kategorier. Når du arbejder med en tabel i dataarkvisning, Access viser felter i en af to kategorier i ruden Feltliste: tilgængelige felter i relaterede tabeller og felter, der er tilgængelige i andre tabeller. Den første kategori vises alle de tabeller, der har en relation med den tabel, du aktuelt arbejder med. Den anden kategori vises alle de tabeller, som tabellen ikke har en relation.

Når du klikker på plustegnet (+) ud for et tabelnavn i ruden Feltliste, vises en liste over alle de felter, der er tilgængelige i denne tabel. Hvis du vil tilføje et felt i tabellen, skal du trække det ønskede felt fra ruden Feltliste til tabellen i dataarkvisning.

Tilføje et felt og oprette en relation i ruden Feltliste

  1. Klik på plustegnet (+) ud for et tabelnavn under Tilgængelige felter i andre tabeller i ruden Feltliste for at få vist listen over felterne i denne tabel.

  2. Træk det ønskede felt fra ruden Feltliste til den tabel, der er åben i dataarkvisning.

  3. Når indsætningslinjen vises, skal du slippe feltet på den ønskede plads.

    Guiden Opslag starter.

  4. Følg vejledningen på skærmen for at fuldføre Guiden Opslag.

    Feltet vises i tabellen i dataarkvisning.

Når du trækker et felt fra en "andet" (ikke-relateret) tabel og derefter fuldføre guiden Opslag, oprettes der automatisk en ny en-til-mange-relation mellem tabellen på Feltlisten og den tabel, som du har trukket feltet. Denne relation, der er oprettet i Access, ikke gennemtvinge referentiel integritet som standard. Hvis du vil gennemtvinge referentiel integritet, skal du redigere relationen. I afsnittet ændre en tabelrelation kan finde flere oplysninger.

Toppen af siden

Slette en tabelrelation

Hvis du vil fjerne en tabelrelation, skal du slette på relationslinjen i vinduet relationer. Placer markøren præcist, så den peger på relationslinjen, og klik derefter på linjen. Relationslinjen tykkere, når den er markeret. Tryk på DELETE med den valgte relationslinje. Bemærk, at når du fjerner en relation, du også fjerne understøttelse af referentiel integritet for denne relation, hvis det er aktiveret. Access forhindrer som et resultat, ikke længere automatisk oprettelse af uafhængige poster på "mange"-siden af en relation.

  1. Klik på Relationer i gruppen Relationer under fanen Databaseværktøjer.

Vinduet relationer vises. Hvis du endnu ikke har defineret eventuelle relationer, og det er første gang du åbner vinduet relationer, vises dialogboksen Vis tabel. Hvis dialogboksen vises, skal du klikke på Luk.

  • Klik på Vis alle relationer i gruppen Relationer under fanen Design.

Alle tabeller med relationer vises, angivelse af relationslinjer.

  1. Klik på relationslinjen til den relation, du vil slette. Relationslinjen er tykkere, når den er markeret.

  2. Tryk på Delete.

    -eller-

Højreklik, og klik derefter på Slet.

  1. Følgende meddelelse vises muligvis: Er du sikker på, at du vil slette den markerede relation permanent fra databasen? Hvis det er tilfældet, skal du klikke på Ja.

Bemærk: Hvis en af tabellerne i tabelrelationen er i brug, evt. af en anden person eller proces, eller i et åbent databaseobjekt (f.eks. en formular), kan du ikke slette relationen. Du skal først lukke alle åbne objekter, der anvender disse tabeller, inden du kan fjerne relationen.

Toppen af siden

Ændre en tabelrelation

Du kan ændre en tabelrelation ved at markere den i vinduet Relationer og derefter redigere den. Placer markøren præcist, så den peger på relationslinjen, og klik derefter på linjen for at markere den. Relationslinjen bliver tykkere, når den er markeret. Når relationslinjen er markeret, skal du dobbeltklikke på den eller klikke på Rediger relationer i gruppen Funktioner under fanen Design. Dialogboksen Rediger relationer åbnes.

Foretage ændringer i dialogboksen Rediger relationer.

  1. Klik på Relationer i gruppen Relationer under fanen Databaseværktøjer.

Vinduet relationer vises. Hvis du endnu ikke har defineret eventuelle relationer, og det er første gang du åbner vinduet relationer, vises dialogboksen Vis tabel. Hvis dialogboksen vises, skal du klikke på Luk.

  • Klik på Vis alle relationer i gruppen Relationer under fanen Design.

  • Alle tabeller med relationer vises, angivelse af relationslinjer.

  • Klik på relationslinjen til den relation, du vil ændre. Relationslinjen er tykkere, når den er markeret.

  • Dobbeltklik på relationslinjen.

  • Foretag de ønskede ændringer, og klik derefter på OK.

    I dialogboksen Rediger relationer kan du ændre tabelrelationer. Du kan ændre tabellerne eller forespørgslerne på en af siderne af relationerne eller felterne på begge sider. Desuden kan du angive jointyperne, gennemtvinge referentiel integritet eller vælge en overlappende indstilling. Du kan finde flere oplysninger om jointypen, og hvordan den angives, i afsnittet Angive jointypen. Du kan finde flere oplysninger om, hvordan du gennemtvinger referentiel integritet og vælger en overlappende indstilling, i afsnittet Gennemtvinge referentiel integritet.

Angive jointypen

Når du definerer en tabelrelation, giver oplysninger om relationen oplysninger til forespørgselsdesign. Eksempelvis hvis du definerer en relation mellem to tabeller, og du derefter oprette en forespørgsel, der anvender disse tabeller, vælger Access automatisk standard identiske felter, der er baseret på de felter, der er angivet i relationen. Du kan tilsidesætte disse indledende standardværdier i forespørgslen, men de værdier, der leveres af relationen der ofte bevise er korrekte. Da tilsvarende og hente data fra mere end én tabel er noget, der udføres ofte i alle undtagen de mest enkle databaser, angive standardindstillinger for ved at oprette relationer kan være tid gemme og nyttige.

I en forespørgsel med flere tabeller kombineres oplysninger fra flere tabeller ved at matche værdierne i fælles felter. Denne handling kaldes en joinhandling. Hvis det f.eks. antages, at du vil have vist dine kunders ordrer, kan du oprette en forespørgsel, der joinforbinder tabellen Kunder og tabellen Ordrer på feltet Kundenr. Forespørgselsresultatet indeholder kun kunde- og ordreoplysninger fra de rækker, hvor værdierne i feltet er ens.

En af de værdier, du kan angive for hver relation er jointypen. Jointypen fortæller Access, hvilke poster der skal medtages i et forespørgselsresultat. For eksempel overveje igen en forespørgsel, der sammenkæder tabellen kunder og tabellen ordrer på de almindelige felter, der repræsenterer kunde-ID. Bruger standardjointypen (kaldet en indre joinforbindelse), returnerer forespørgslen kun kunde rækkerne og de rækkefølge rækker, hvor de almindelige felter (også kaldet de joinforbundne felter) er lig med.

Men du vil f.eks. medtage alle Kunder - også kunder, der endnu ikke har afgivet nogen ordrer. For at gøre det skal du ændre jointypen fra en indre joinforbindelse til det, der kaldes en venstre ydre joinforbindelse. En venstre ydre joinforbindelse returnerer alle rækker fra tabellen på venstre side af relationen og kun de, der er relaterede, fra tabellen på højre side. En højre ydre joinforbindelse returnerer alle rækkerne på højre side og kun de, der er relaterede, på venstre side.

Bemærk: I dette tilfælde henviser "venstre" og "højre" til placeringen af tabellerne i dialogboksen Rediger relationer, ikke i vinduet Relationer.

Du skal overveje, hvilket resultat du oftest ønsker fra tabellerne i denne relation, og derefter angive jointypen i overensstemmelse hermed.

Angive jointypen

  1. Klik på Jointype i dialogboksen Rediger relationer.

    Dialogboksen Joinegenskaber vises.

  2. Vælg den ønskede type, og klik derefter på OK.

Følgende tabel (ved hjælp af tabellerne Kunder og ordrer) viser de tre valgmuligheder, der vises i dialogboksen Joinegenskaber for typen af joinforbindelse, de bruger, og om alle rækker eller tilsvarende rækker er inkluderet for hver tabel.

Valg

Joinforbindelse

Venstre tabel

Højre tabel

1. Medtag kun rækker, hvor de joinforbundne felter fra begge tabeller er ens.

Indre joinforbindelse

Matchende rækker

Matchende rækker

2. Medtag ALLE poster fra "Kunder" og kun de poster fra "Ordrer", hvor de joinforbundne felter er ens.

Venstre ydre joinforbindelse

Alle rækker

Matchende rækker

3. Medtag ALLE poster fra "Ordrer" og kun de poster fra "Kunder", hvor de joinforbundne felter er ens.

Højre ydre joinforbindelse

Matchende rækker

Alle rækker

Hvis du vælger indstilling 2 eller 3, vises der en pil på relationslinjen. Denne pil peger på den side af relationen, hvor der kun vises matchende rækker.

Foretage ændringer i dialogboksen Joinegenskaber

  1. Klik på Relationer i gruppen Relationer under fanen Databaseværktøjer.

Vinduet relationer vises. Hvis du endnu ikke har defineret eventuelle relationer, og det er første gang du åbner vinduet relationer, vises dialogboksen Vis tabel. Hvis dialogboksen vises, skal du klikke på Luk.

  • Klik på Vis alle relationer i gruppen Relationer under fanen Design.

    Alle tabeller med relationer vises, og relationslinjerne er synlige

  • Klik på relationslinjen til den relation, du vil ændre. Relationslinjen er tykkere, når den er markeret.

  • Dobbeltklik på relationslinjen.

Dialogboksen Rediger relationer åbnes.

  1. Klik på Deltag i Type

  2. Klik på en indstilling i dialogboksen Joinegenskaber, og klik derefter på OK.

  3. Foretag eventuelle yderligere ændringer af relationen, og klik derefter på OK.

Toppen af siden

Gennemtvinge referentiel integritet

Formålet med referentiel integritet er at forhindre uafhængige poster og holde henvisningerne synkroniserede, så du ikke har nogen poster, som henviser til andre poster, der ikke længere findes. Du kan gennemtvinge referentiel integritet ved at aktivere den til en tabelrelation. Når træder i kraft, afviser Access alle handlinger, der ville krænker referentiel integritet for tabelrelationen. Access afviser opdateringer, der ændres destinationen for en reference, og sletninger, der fjerner destinationen for en reference. Hvis du vil have adgang sprede referentiel opdateringer og sletninger, så alle relaterede rækker er ændret i overensstemmelse hermed, i afsnittet angive kaskadeindstillingerne.

Aktivere og deaktivere referentiel integritet

  1. Klik på relationslinjen til den relation, som du vil ændre, i vinduet Relationer. Relationslinjen er tykkere, når den er valgt.

  2. Dobbeltklik på relationslinjen.

Dialogboksen Rediger relationer åbnes.

  1. Markér afkrydsningsfeltet Gennemtving referentiel integritet.

  2. Foretag eventuelle yderligere ændringer af relationen, og klik derefter på OK.

Når du har valgt at gennemtvinge referentiel integritet, træder følgende regler i kraft:

  • Du kan ikke angive en værdi i fremmed nøgle-feltet i en relateret tabel, hvis denne værdi ikke findes i primær nøgle-feltet i den primære tabel. Hvis du gør det, oprettes der uafhængigt poster. 

  • Du kan ikke slette en post fra en primær tabel, hvis der findes matchende poster i en relateret tabel. Du kan f.eks. ikke slette en medarbejderpost fra tabellen Medarbejdere, hvis der findes ordrer, der er tildelt til medarbejderen, i tabellen Ordrer. Du kan dog vælge at slette en primær post og alle relaterede poster i en handling ved at markere afkrydsningsfeltet Kaskadevis sletning af relaterede poster.

  • Du kan ikke ændre en primær nøgle-værdi i den primære tabel, hvis gøre vil oprette uafhængige poster. For eksempel kan ikke du ændre en rækkefølge tal i tabellen Ordrer, hvis der er tildelt rækkefølgen i tabellen Ordreoplysninger linjeelementer. Du kan dog vælge at opdatere en primær post og alle relaterede poster på én gang ved at markere afkrydsningsfeltet Kaskadevis opdatering af relaterede felter.

    Bemærkninger: Hvis du har problemer med at aktivere referentiel integritet, skal du være opmærksom på, at følgende betingelser er opfyldt for at gennemtvinge referentiel integritet:

    • Det fælles felt fra den primære tabel skal være en primær nøgle eller have et entydigt indeks.

    • De fælles felter skal have samme datatype. Den eneste undtagelse er autonummereringsfelter, der kan relateres til et talfelt, hvis egenskaben Feltstørrelse er angivet til Langt heltal.

    • Begge tabeller skal findes i den samme Access-database. Referentiel integritet kan ikke gennemtvinges på sammenkædede tabeller. Hvis der er kildetabeller i Access-format, kan du åbne den database, hvor de er gemt, og Aktivér referentiel integritet i den pågældende database.

Angive kaskadeindstillingerne

Du kan støde på en situation, hvor du har en gyldig grund til at ændre værdien i relationens en-side af en relation. I dette tilfælde skal have du adgang til automatisk at opdatere alle de rækker, der udføres som en del af en enkelt handling. På den måde, vil opdateringen, er fuldført i fuld, så din database ikke er tilbage i en ustabil tilstand – med nogle rækker, der er opdateret og nogle ikke. Access hjælper dig med at undgå dette problem ved hjælp af indstillingen kaskadevis opdatering af relaterede felter. Når du gennemtvinge referentiel integritet og vælge indstillingen kaskadevis opdatering af relaterede felter, og du derefter opdatere en primær nøgle, opdaterer Access automatisk alle felter, som henviser til den primære nøgle.

Du muligvis også slette en række og alle de relaterede poster – for eksempel en afsender post og alle relaterede ordrer for den pågældende afsender. Access understøtter derfor indstillingen Kaskadevis sletning af relaterede poster. Når du gennemtvinge referentiel integritet og vælge indstillingen Kaskadevis sletning af relaterede poster, slettes automatisk alle poster, der refererer den primære nøgle, når du sletter den post, der indeholder den primære nøgle.

Aktivere eller deaktivere kaskadevis opdatering eller sletning

  1. Klik på relationslinjen til den relation, som du vil ændre, i vinduet Relationer. Relationslinjen er tykkere, når den er valgt.

  2. Dobbeltklik på relationslinjen.

Dialogboksen Rediger relationer åbnes.

  1. Markér afkrydsningsfeltet Gennemtving referentiel integritet.

  2. Markér afkrydsningsfeltet Kaskadevis opdatering af relaterede felter eller Kaskadevis sletning af relaterede poster, eller markér dem begge.

  3. Foretag eventuelle yderligere ændringer af relationen, og klik derefter på OK.

Bemærk: Hvis den primære nøgle er et felt af typen Autonummerering, vil markering af afkrydsningsfeltet Kaskadevis opdatering af relaterede felter ikke have nogen betydning, fordi du ikke kan ændre værdien i et felt af typen Autonummerering.

Toppen af siden

Bemærk: Ansvarsfraskrivelse for maskinoversættelse: Denne artikel er blevet oversat af et computersystem uden menneskelig indgriben. Microsoft tilbyder disse maskinoversættelse for at hjælpe ikke-engelsktalende brugere til at kunne nyde indhold om Microsofts produkter, tjenester og teknologier. Da artiklen er maskinoversat, kan den indeholde forkerte ord eller syntaks- eller grammatikfejl.

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×