Sammenligne to tabeller, og find kun matchende data

Sommetider ønsker du måske kun at gennemgå poster fra én Access-tabel, hvis der er tilsvarende poster i en anden Access-tabel, som indeholder ét eller flere felter med matchende data. Eksempelvis ønsker du måske at gennemgå medarbejderposterne for medarbejdere, der har behandlet mindst én ordre, for at afgøre, hvilke medarbejdere der har fortjent en bonus. Eller du ønsker måske at gennemgå kontaktoplysninger på kunder, der bor i den samme by som en medarbejder, så du kan sætte medarbejdere sammen med en kunde til et personligt møde.

Når du vil sammenligne to Access-tabeller og finde matchende data, kan du enten:

  • Oprette en forespørgsel, der sammenkæder felter fra hver tabel, hvor disse felter indeholder tilsvarende oplysninger, enten ved hjælp af en eksisterende relation eller ved hjælp af en joinforbindelse, som du opretter til forespørgslen. Denne metode giver den optimale ydeevne (den hastighed, forespørgslen returnerer resultater med), men du kan ikke sammenkæde felter, som har forskellige datatyper.

  • Oprette en forespørgsel, der sammenligner felter, ved at bruge ét felt som et kriterium for det andet. At bruge et felt som et kriterium for et andet felt er generelt en langsommere løsning end at bruge joinforbindelser, fordi joinforbindelser udelukker rækker fra en forespørgsels resultater, før de underliggende tabeller læses, mens kriterierne anvendes på en forespørgsels resultater, efter de underliggende tabeller er blevet læst. Du kan dog bruge et felt som et feltkriterium til at sammenligne felter, der har forskellige datatyper, hvilket du ikke kan gøre ved hjælp af joinforbindelser.

I denne artikel beskrives det, hvordan du kan sammenligne to tabeller for at identificere matchende data, og den indeholder eksempeldata, du kan bruge sammen med eksempelprocedurer.

Hvad vil du foretage dig?

Sammenlign to tabeller ved hjælp af joinforbindelser

Sammenlign to tabeller ved hjælp af et felt som kriterium

Sammenlign to tabeller ved hjælp af joinforbindelser

Hvis du vil sammenligne to tabeller ved hjælp af joinforbindelser, skal du oprette en udvælgelsesforespørgsel, der medtager begge tabeller. Hvis der ikke allerede er en eksisterende relation mellem tabellerne for de felter, der indeholder de tilsvarende data, kan du oprette en joinforbindelse mellem de felter, du vil undersøge for match. Du kan oprette lige så mange joinforbindelser, som du vil, men hvert par af forbundne felter skal have samme eller kompatible datatyper.

Antag, at du er forsker ved et universitet, og du vil se, hvordan de seneste ændringer i pensumplanerne på instituttet for matematik har påvirket de studerendes karakterer. Specifikt er du interesseret i karaktererne for de studerende, der har matematik som hovedfag. Du har allerede en tabel, der gemmer data for studerendes hovedfag, og en tabel, der gemmer data om fagtilmelding. Karakterdata gemmes i tabellen Fagtilmeldinger, og data for de studerendes hovedfag gemmes i tabellen Hovedfagsstuderende. Hvis du vil se, hvordan karaktererne har ændret sig for studerende med matematik som hovedfag efter de seneste ændringer i pensumplanerne, skal du gennemse de poster i tabellen med fagtilmeldinger, der har tilsvarende poster i tabellen for studerende med matematik som hovedfag.

Forbered eksempeldata

I dette eksempel skal du oprette en forespørgsel, der bestemmer, hvordan de seneste ændringer i pensumplanerne på instituttet for matematik har påvirket de matematikstuderendes karakterer. Du kan bruge følgende to eksempeltabeller: Hovedfagsstuderende og Fagtilmeldinger. Føj disse to eksempeltabeller, Hovedfagsstuderende og Fagtilmeldinger, til en database.

Microsoft Office Access 2007 indeholder flere måder at føje disse eksempeltabeller til en database på. Du kan angive data manuelt, du kan kopiere hver tabel til et regnearksprogram som f.eks. Microsoft Office Excel 2007, og derefter importere regnearkene i Office Access 2007, eller du kan indsætte dataene i et tekstredigeringsprogram som f.eks. Notesblok, og derefter importere data fra de resulterende tekstfiler.

Trinnene i dette afsnit beskriver, hvordan du angiver data manuelt i et tomt dataark, og hvordan du kopierer eksempeltabellerne til et Excel og derefter importerer disse tabeller i Access.

Hovedfagsstuderende

Elev-id

År

Hovedfag

123456789

2005

MAT

223334444

2005

ENG

987654321

2005

MAT

135791357

2005

HIS

147025836

2005

BIO

707070707

2005

MAT

123456789

2006

MAT

223334444

2006

ENG

987654321

2006

PSY

135791357

2006

KUN

147025836

2006

BIO

707070707

2006

MAT

Fagtilmeldinger

Elev-id

År

Semester

Pensum

Kursusnummer

Karakter

123456789

2005

3

MAT

221

12

123456789

2005

3

ENG

101

10

123456789

2006

1

MAT

242

7

123456789

2006

1

MAT

224

7

223334444

2005

3

ENG

112

12

223334444

2005

3

MAT

120

7

223334444

2006

1

SAM

110

12

223334444

2006

1

ENG

201

10

987654321

2005

3

MAT

120

12

987654321

2005

3

PSY

101

12

987654321

2006

1

MAT

221

10

987654321

2006

1

MAT

242

7

135791357

2005

3

HIS

102

12

135791357

2005

3

KUN

112

12

135791357

2006

1

MAT

120

10

135791357

2006

1

MAT

141

7

147025836

2005

3

BIO

113

10

147025836

2005

3

KEM

113

10

147025836

2006

1

MAT

120

4

147025836

2006

1

STAT

114

10

707070707

2005

3

MAT

221

10

707070707

2005

3

STAT

114

12

707070707

2006

1

MAT

242

4

707070707

2006

1

MAT

224

7

Hvis du vil bruge et regnearksprogram til at angive eksempeldataene, kan du springe følgende afsnit over.

Angive eksempeldataene manuelt

  1. Åbn en ny eller eksisterende database.

  2. Klik på Tabel i gruppen Tabeller under fanen Opret.

    Billede af Access-båndet

    Access tilføjer en ny, tom tabel til databasen.

    Bemærk: Du behøver ikke at udføre dette trin, hvis du åbner en ny, tom database, men du skal følge den, hver gang du vil føje en tabel til databasen.

  3. Dobbeltklik på den første celle i overskriftsrækken, og skriv derefter navnet på feltet i eksempeltabellen.

    Som standard udfylder Access tomme felter i overskriftsrækken med teksten Tilføj nyt felt, f.eks. således:

    Et nyt felt i et dataark

  4. Brug piletasterne til at flytte til den næste tomme overskriftscelle, og angiv det andet feltnavn. Du kan også dobbeltklikke på den nye celle. Gentag dette trin for hvert feltnavn.

  5. Indtast data fra eksempeltabellen.

    Når du indtaster data, udleder Access en datatype for hvert felt. Hvert felt har en bestemt datatype, f.eks. Tal, Tekst eller Dato og klokkeslæt. Angivelse af datatyper sikrer nøjagtig dataindtastning og forhindrer også fejl, f.eks. brug af et telefonnummer i en beregning. For disse eksempeltabeller skal du lade Access udlede datatypen, men sørg for at kontrollere den datatype, Access udleder for hvert felt.

  6. Når du er færdig med at indtaste data, skal du klikke på Gem eller trykke på Ctrl+S.

    Dialogboksen Gem som åbnes.

  7. Skriv navnet på eksempeltabellen i feltet Tabelnavn, og klik derefter på OK.

    Du skal bruge navnet på hver af eksempeltabellerne (f.eks. Hovedfagsstuderende), fordi forespørgslerne i procedureafsnittene i denne artikel også bruger disse navne.

Når du er færdig med at indtaste eksempeldataene, er du klar til at sammenligne de to tabeller.

Spring de følgende afsnit over (Opret eksempelregneark), medmindre du vil se, hvordan du opretter et regneark, der er baseret på eksempeldataene fra tabellerne i det forrige afsnit.

Oprette eksempelregneark

  1. Start dit regnearksprogram, og opret en ny, tom fil. Hvis du bruger Excel, oprettes der som standard en ny, tom projektmappe, når du åbner programmet.

  2. Kopiér den første eksempeltabel fra det forrige afsnit, og sæt den ind i det første regneark, hvor du starter ved den første celle. Sørg for at kopiere kolonneoverskriften, fordi den indeholder feltnavnene på eksempeltabellen.

  3. Brug den metode, der foreskrives for dit regnearksprogram til at give regnearket samme navn som eksempeltabellen. Når du f.eks. indsætter eksempeldataene fra Fagtilmeldinger, skal du navngive regnearket Fagtilmeldinger.

  4. Gentag trin 2 og 3, hvor du kopierer den anden eksempeltabel til et tomt regneark og omdøber regnearket.

    Bemærk: Det kan være nødvendigt at føje regneark til din regnearksfil. Hvis du vil have mere at vide om at føje regneark til din regnearksfil, skal du se hjælpen til dit regnearksprogram.

  5. Gem projektmappen et praktisk sted på computeren eller netværket, og gå til det næste trin.

Oprette databasetabeller ud fra regneark

  1. Gør følgende i en ny eller eksisterende database.

    På fanen Eksterne Data i gruppen Importér skal du klikke på Excel.

    Billede af Access-båndet

    eller

    Klik på Mere, og vælg derefter et regnearksprogram på listen.

    Dialogboksen Hent eksterne Data – Programnavn-regneark vises.

  2. Klik på Gennemse, find og åbn den regnearksfil, du oprettede i de forrige trin, og klik derefter på OK.

    Guiden Importér regneark starter.

    Som standard markerer guiden det første regneark i projektmappen (Hovedfagsstuderende, hvis du har fulgt trinnene i forrige afsnit), og data fra regnearket vises i den nederste del af siden i guiden.

  3. Klik på Næste.

  4. På den næste side i guiden skal du markere afkrydsningsfeltet Første række indeholder kolonneoverskrifter og derefter klikke på Næste.

  5. På den næste side kan du bruge tekstfelter og lister under Feltindstillinger til at ændre feltnavne og datatyper eller til at udelade felter fra importen. I dette eksempel behøver du ikke at ændre noget. Klik på Næste.

  6. På den næste side skal du vælge indstillingen Ingen primær nøgle og derefter klikke på Næste.

  7. Access anvender som standard navnet på regnearket på den nye tabel. Acceptér navnet i feltet Importér til tabel, og klik derefter på Udfør.

  8. På siden Gem importtrin skal du klikke på Luk for at fuldføre guiden.

  9. Gentag trin 1 til 7, indtil du har oprettet en tabel fra hvert regneark i regnearksfilen.

Sammenlig eksempeltabellerne, og find matchende poster, ved hjælp af joinforbindelser

Nu er du klar til at sammenligne tabellen Fagtilmeldinger og tabellen Hovedfagsstuderende. Fordi du ikke har defineret relationer mellem de to tabeller, skal du oprette joinforbindelser mellem de relevante felter i forespørgslen. Tabellerne har mere end ét felt til fælles, og du skal oprette en joinforbindelse for hvert par af tilsvarende felter: Elev-id, År og Pensum (tabellen Fagtilmeldinger) og Hovedfag (tabellen Hovedfagsstuderende). I dette eksempel er du kun interesseret i studerende med matematik som hovedfag, så du skal også bruge et feltkriterium til at begrænse forespørgselsresultaterne.

  1. Åbn den database, som du gemte eksempeltabellerne i.

  2. Klik på Forespørgselsdesign på fanen Opret.

  3. I dialogboksen Vis tabel skal du dobbeltklikke på den tabel, der indeholder de poster, du vil have vist – i dette eksempel, tabellen Fagtilmeldinger, og derefter skal du dobbeltklikke på den tabel, som du sammenligner den med – i dette eksempel, tabellen Hovedfagsstuderende.

  4. Luk dialogboksen Vis tabel.

  5. Træk feltet Elev-id fra tabellen Fagtilmeldinger til feltet Elev-id i tabellen Hovedfagsstuderende. Der vises en linje mellem de to tabeller i designgitteret, der angiver, at du har oprettet en joinforbindelse. Dobbeltklik på linjen for at åbne dialogboksen Joinegenskaber.

  6. Gennemgå de tre indstillinger i dialogboksen Joinegenskaber. Mulighed 1 er valgt som standard. I nogle tilfælde skal du justere joinegenskaberne til at omfatte ekstra rækker fra en tabel. Da du kun søger efter matchende data, skal du lade joinforbindelsen være indstillet til indstilling 1. Luk dialogboksen Joinegenskaber ved at klikke på Annuller.

  7. Du skal oprette to andre joinforbindelser. Opret disse joinforbindelser ved at trække feltet År fra tabellen Fagtilmeldinger til feltet År i tabellen Hovedfagsstuderende og derefter trække feltet Pensum fra tabellen Fagtilmeldinger til feltet Hovedfag i tabellen Hovedfagsstuderende.

  8. Dobbeltklik på stjernen (*) i tabellen Fagtilmeldinger for at føje alle tabellens felter til forespørgselsdesigngitteret.

    Bemærk: Når du bruger stjernen til at tilføje alle felter, vises der kun én kolonne i designgitteret. Den kolonne, der vises, har tabellens navn efterfulgt af et punktum (.) og en stjerne (*). I dette eksempel, hedder kolonnen Fagtilmeldinger.*.

  9. I tabellen Hovedfagsstuderende skal du dobbeltklikke på feltet Hovedfag for at føje det til gitteret.

  10. Ryd markeringen i afkrydsningsfeltet i rækken Vis i kolonnen Hovedfag i forespørgselsdesigngitteret.

  11. Skriv MAT i rækken Kriterier i kolonnen Hovedfag.

  12. Klik på Kør i gruppen Resultater under fanen Design.

    Forespørgslen kører og viser derefter kun matematikkarakterer for studerende med matematik som hovedfag.

Toppen af siden

Sammenlign to tabeller ved hjælp af et felt som kriterium

Nogle gange vil du måske sammenligne tabeller på baggrund af felter, der indeholder matchende data, men har forskellige datatyper. Eksempelvis kan et felt i én tabel have datatypen Tal, og du vil sammenligne dette felt med et felt i en anden tabel, der indeholder datatypen Tekst. Felter, der indeholder ens data, men som har forskellige felttyper, kan forekomme, hvis tal er gemt som tekst, enten med fuldt overlæg, eller af andre årsager, f.eks. pga. import af data fra et andet program. Fordi du ikke kan oprette joinforbindelser mellem felter, som har forskellige datatyper, skal du bruge en anden metode til at sammenligne felterne. Du kan sammenligne to felter, der har forskellige datatyper, ved at bruge ét felt som et kriterium for det andet.

Antag, at du er forsker ved et universitet, og du vil se, hvordan de seneste ændringer i pensumplanerne på instituttet for matematik har påvirket de studerendes karakterer. Specifikt er du interesseret i karaktererne for de studerende, der har matematik som hovedfag. Du har allerede tabellen Hovedfagsstuderende og tabellen Fagtilmeldinger. Karakterdata gemmes i tabellen Fagtilmeldinger, og data for de studerendes hovedfag gemmes i tabellen Hovedfagsstuderende. Hvis du vil se, hvordan karaktererne har ændret sig for studerende med matematik som hovedfag, skal du se på de poster i tabellen med fagtilmeldinger, der har tilsvarende poster i tabellen for studerende med matematik som hovedfag. Et af de felter, du vil bruge til at sammenligne tabellerne, har dog en anden datatype end dens modpart.

Hvis du vil sammenligne to tabeller ved hjælp et felt som kriterium, skal du oprette en udvælgelsesforespørgsel, der medtager begge tabeller. Du medtager de felter, du vil vise, og du medtager også det felt, der svarer til det felt, du vil bruge som et kriterium. Derefter kan du oprette et kriterium til sammenligning af tabeller. Du kan oprette lige så mange kriterier til sammenligning af felter, som du vil.

For at illustrere denne metode skal du bruge eksempeltabellerne fra forrige afsnit, men du skal ændre datatypen i feltet Elev-id i eksempeltabellen Hovedfagsstuderende fra Tal til Tekst. Fordi du ikke kan oprette en joinforbindelse mellem to felter, der har forskellige datatyper, skal du sammenligne de to Elev-id-felter ved at bruge ét felt som kriterium for det andet.

Skift datatypen for feltet Elev-id i Hovedfagsstuderende

  1. Åbn den database, som du gemte eksempeltabellerne i.

  2. Højreklik på tabellen Hovedfagsstuderende i ruden Navigation, og klik derefter på Designvisning i genvejsmenuen.

    Tabellen Hovedfagsstuderende åbnes i Designvisning.

  3. I kolonnen Datatype skal du ændre indstillingen for Elev-id fra Tal til Tekst.

  4. Luk tabellen Hovedfagsstuderende. Når du bliver spurgt, om du vil gemme ændringerne, skal du klikke på Ja.

Sammenlig eksempeltabellerne, og find matchende poster, ved hjælp af et feltkriterium

Følgende fremgangsmåde viser, hvordan du kan sammenligne de to udgaver af feltet Elev-id ved at bruge feltet fra Fagtilmeldinger som et kriterium for feltet fra Hovedfagsstuderende. Ved hjælp af nøgleordet Lig kan du sammenligne felterne, selvom de har forskellige datatyper.

  1. Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.

  2. I dialogboksen Vis tabel skal du dobbeltklikke på Fagtilmeldinger, og derefter skal du dobbeltklikke på Hovedfagsstuderende.

  3. Luk dialogboksen Vis tabel.

  4. Træk feltet År fra tabellen Fagtilmeldinger til feltet År i tabellen Hovedfagsstuderende, og træk derefter feltet Pensum fra tabellen Fagtilmeldinger til feltet Hovedfag i tabellen Hovedfagsstuderende. Fordi disse felter har de samme datatyper, kan du sammenligne dem ved hjælp af joinforbindelser. Joinforbindelser er den foretrukne metode til at sammenligne felter, der har samme datatype.

  5. Dobbeltklik på stjernen (*) i tabellen Fagtilmeldinger for at føje alle tabellens felter til forespørgselsdesigngitteret.

    Bemærk: Når du bruger stjernen til at tilføje alle felter, vises der kun én kolonne i designgitteret. Den kolonne, der vises, har tabellens navn efterfulgt af et punktum (.) og en stjerne (*). I dette eksempel, hedder kolonnen Fagtilmeldinger.*.

  6. I tabellen Hovedfagsstuderende skal du dobbeltklikke på feltet Elev-id for at føje det til gitteret.

  7. Ryd markeringen i afkrydsningsfeltet i rækken Vis i kolonnen Elev-id i designgitteret. I rækken Kriterier i kolonnen Elev-id skal du skrive Lig [Fagtilmeldinger]. [ Elev-id].

  8. I tabellen Hovedfagsstuderende skal du dobbeltklikke på feltet Hovedfag for at føje det til gitteret.

  9. Ryd markeringen i afkrydsningsfeltet i rækken Vis i kolonnen Hovedfag i designgitteret. Skriv MAT i rækken kriterier.

  10. Klik på Kør i gruppen Resultater under fanen Design.

    Forespørgslen kører og viser derefter kun matematikkarakterer for studerende med matematik som hovedfag.

Toppen af siden

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!

×