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
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.
Access indeholder flere måder at føje disse eksempeltabeller til en database på. Du kan angive dataene manuelt, du kan kopiere hver tabel til et regnearksprogram og derefter importere regnearkene til Access, eller du kan indsætte dataene i et tekstredigeringsprogram, f.eks. Notesblok, og derefter importere dataene 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 |
A |
123456789 |
2005 |
3 |
ENG |
101 |
B |
123456789 |
2006 |
1 |
MAT |
242 |
C |
123456789 |
2006 |
1 |
MAT |
224 |
C |
223334444 |
2005 |
3 |
ENG |
112 |
A |
223334444 |
2005 |
3 |
MAT |
120 |
C |
223334444 |
2006 |
1 |
SAM |
110 |
A |
223334444 |
2006 |
1 |
ENG |
201 |
B |
987654321 |
2005 |
3 |
MAT |
120 |
A |
987654321 |
2005 |
3 |
PSY |
101 |
A |
987654321 |
2006 |
1 |
MAT |
221 |
B |
987654321 |
2006 |
1 |
MAT |
242 |
C |
135791357 |
2005 |
3 |
HIS |
102 |
A |
135791357 |
2005 |
3 |
KUN |
112 |
A |
135791357 |
2006 |
1 |
MAT |
120 |
B |
135791357 |
2006 |
1 |
MAT |
141 |
C |
147025836 |
2005 |
3 |
BIO |
113 |
B |
147025836 |
2005 |
3 |
KEM |
113 |
B |
147025836 |
2006 |
1 |
MAT |
120 |
D |
147025836 |
2006 |
1 |
STAT |
114 |
B |
707070707 |
2005 |
3 |
MAT |
221 |
B |
707070707 |
2005 |
3 |
STAT |
114 |
A |
707070707 |
2006 |
1 |
MAT |
242 |
D |
707070707 |
2006 |
1 |
MAT |
224 |
C |
Hvis du vil bruge et regnearksprogram til at angive eksempeldataene, kan du springe følgende afsnit over.
Angive eksempeldataene manuelt
-
Åbn en ny eller eksisterende database.
-
Klik på Tabel i gruppen Tabeller under fanen Opret.
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.
-
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:
-
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.
-
Indtast data fra eksempeltabellen.
Når du angiver dataene, udleder Access en datatype for hvert felt. Hvert felt har en bestemt datatype, f.eks. Tal, Tekst eller Dato/klokkeslæt. Angivelse af datatyper sikrer nøjagtig dataindtastning og hjælper også med at forhindre fejl, f.eks. brug af et telefonnummer i en beregning. For disse eksempeltabeller skal du tillade, at Access udleder datatypen, men sørg for at gennemgå den datatype, som Access udleder for hvert felt.
-
Når du er færdig med at indtaste data, skal du klikke på Gem eller trykke på Ctrl+S.
Dialogboksen Gem som åbnes.
-
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
-
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.
-
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.
-
Giv regnearket det samme navn som eksempeltabellen ved hjælp af den metode, der er angivet i regnearksprogrammet. Når du f.eks. indsætter eksempeldataene for Fagtilmeldinger , skal du navngive regnearket Fagtilmeldinger.
-
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.
-
Gem projektmappen et praktisk sted på computeren eller netværket, og gå til det næste trin.
Oprette databasetabeller ud fra regneark
-
Gør følgende i en ny eller eksisterende database.
På fanen Eksterne Data i gruppen Importér skal du klikke på Excel.
eller
Klik på Mere, og vælg derefter et regnearksprogram på listen.
Dialogboksen Hent eksterne Data – Programnavn-regneark vises.
-
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.
-
Klik på Næste.
-
På den næste side i guiden skal du markere afkrydsningsfeltet Første række indeholder kolonneoverskrifter og derefter klikke på Næste.
-
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.
-
På den næste side skal du vælge indstillingen Ingen primær nøgle og derefter klikke på Næste.
-
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.
-
På siden Gem importtrin skal du klikke på Luk for at fuldføre guiden.
-
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.
-
Åbn den database, som du gemte eksempeltabellerne i.
-
Klik på Forespørgselsdesign på fanen Opret.
-
Dobbeltklik på den tabel, der indeholder de poster, du vil have vist – i dette eksempel tabellen Fagtilmeldinger , og dobbeltklik derefter på den tabel, du sammenligner den med – i dette eksempel tabellen Hovedfagsstuderende .
-
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.
-
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.
-
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.
-
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.*.
-
I tabellen Hovedfagsstuderende skal du dobbeltklikke på feltet Hovedfag for at føje det til gitteret.
-
Ryd markeringen i afkrydsningsfeltet i rækken Vis i kolonnen Hovedfag i forespørgselsdesigngitteret.
-
Skriv MAT i rækken Kriterier i kolonnen Hovedfag.
-
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.
Sammenlign to tabeller ved hjælp af et felt som kriterium
Nogle gange vil du måske sammenligne tabeller på basis af felter, der har 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 ensartede data, men som endnu har forskellige felttyper, kan resultere, når tal gemmes som tekst, enten af design eller af andre årsager, f.eks. import af data fra et andet program. Da du ikke kan oprette joinforbindelser mellem felter, der 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 det ene felt som 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
-
Åbn den database, som du gemte eksempeltabellerne i.
-
Højreklik på tabellen Hovedfagsstuderende i ruden Navigation, og klik derefter på Designvisning i genvejsmenuen.
Tabellen Hovedfagsstuderende åbnes i Designvisning.
-
I kolonnen Datatype skal du ændre indstillingen for Elev-id fra Tal til Tekst.
-
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.
-
Klik på Forespørgselsdesign i gruppen Andet under fanen Opret.
-
Dobbeltklik på Fagtilmeldinger, og dobbeltklik derefter på Hovedfagsstuderende.
-
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.
-
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.*.
-
I tabellen Hovedfagsstuderende skal du dobbeltklikke på feltet Elev-id for at føje det til gitteret.
-
Fjern markeringen i afkrydsningsfeltet i rækken Vis i kolonnen Elev-id i designgitteret. I rækken Kriterier i kolonnen Elev-id skal du skrive Like [Fagtilmeldinger].[ Elev-id].
-
I tabellen Hovedfagsstuderende skal du dobbeltklikke på feltet Hovedfag for at føje det til gitteret.
-
Ryd markeringen i afkrydsningsfeltet i rækken Vis i kolonnen Hovedfag i designgitteret. Skriv MAT i rækken kriterier.
-
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.