Ibland kanske du vill granska poster från en Access-tabell endast om det finns motsvarande poster i en annan Access-tabell som innehåller ett eller flera fält med matchande data. Du kanske till exempel vill granska poster för anställda som har hanterat minst en order för att avgöra vilka medarbetare är berättigade till en bonus. Eller så kanske du vill granska kontaktinformation för kunder som bor i samma stad som en medarbetare så att du kan matcha anställda med kunder för personliga möten.
När du vill jämföra två Access-tabeller och söka efter matchande data kan du antingen göra följande:
-
Skapa en fråga som kopplar ihop fält från varje tabell när dessa fält innehåller motsvarande information, antingen med hjälp av en befintlig relation eller med hjälp av en koppling som du skapar för just den här frågan. Den här metoden ger bästa möjliga prestanda (hastigheten som frågan returnerar resultatet), men du kan inte koppla samman fält som har olika datatyper.
-
Skapa en fråga som jämför fält genom att använda ett fält som ett villkor för det andra. Att använda ett fält som ett villkor för ett annat fält är vanligtvis långsammare än med kopplingar, eftersom kopplingar tar bort rader från ett frågeresultat innan de underliggande tabellerna läses, medan villkor tillämpas på ett frågeresultat efter det att de underliggande tabellerna har lästs. Du kan emellertid använda ett fält som ett fältvillkor för att jämföra fält som har olika datatyper, vilket du inte kan göra med kopplingar.
I den här artikeln diskuteras hur du jämför två tabeller för att identifiera matchande data och testdata erbjuds som du kan använda i olika exempel.
Vad vill du göra?
Jämföra två tabeller genom att använda kopplingar
Om du vill jämföra två tabeller med hjälp av kopplingar kan du skapa en urvalsfråga som innehåller båda tabellerna. Om det inte redan finns en befintlig relation mellan tabellerna för de fält som innehåller motsvarande data, skapar du en koppling för de fält som du vill undersöka för matchningar. Du kan skapa så många kopplingar som du vill, men varje par kopplade fält måste ha samma eller kompatibla datatyper.
Anta att du är forskare på en skola och du vill undersöka hur nyligen gjorda schemaändringar på matematikinstitutionen har påverkat studenternas betyg. Du är särskilt intresserad av betygen för studenter som har matematik som huvudämne. Du har redan en tabell som lagrar information om studenters huvudämne och en tabell som lagrar information om kursregistrering. Betygsdata lagras i tabellen Kursregistrering och data om studenthuvudämne lagras i tabellen Studenthuvudämne. Om du vill se hur betygen har ändrats för studenter med matematik som huvudämne sedan schemaändringarna måste du titta på poster i tabellen Kursregistrering som har motsvarande poster i tabellen Studenthuvudämne.
Förbereda exempeldata
I det här exemplet skapar du en fråga som avgör hur de senaste schemaändringarna på matematikinstitutionen har påverkat matematikstudenternas betyg. Du använder de följande två exempeltabellerna, Studenthuvudämne och Kursregistrering. Lägg till dessa två exempeltabeller, Studenthuvudämne och Kursregistrering, i en databas.
Access innehåller flera sätt att lägga till dessa exempeltabeller i en databas. Du kan ange data manuellt, kopiera varje tabell till ett kalkylbladsprogram och sedan importera kalkylbladen till Access, eller så kan du klistra in data i en textredigerare, till exempel Anteckningar, och sedan importera data från resulterande textfiler.
I det här avsnittet förklaras hur du anger data manuellt i ett tomt datablad samt hur du kopierar exempeltabellerna till Excel, och sedan hur du importerar tabellerna till Access.
Studenthuvudämne
Student-ID |
År |
Huvudämne |
---|---|---|
123456789 |
2005 |
MAT |
223334444 |
2005 |
ENG |
987654321 |
2005 |
MAT |
135791357 |
2005 |
HIST |
147025836 |
2005 |
BIOL |
707070707 |
2005 |
MAT |
123456789 |
2006 |
MAT |
223334444 |
2006 |
ENG |
987654321 |
2006 |
PSYK |
135791357 |
2006 |
BILD |
147025836 |
2006 |
BIOL |
707070707 |
2006 |
MAT |
Kursregistrering
Student-ID |
År |
Termin |
Schema |
Kursnr. |
Betyg |
---|---|---|---|---|---|
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 |
POSC |
110 |
A |
223334444 |
2006 |
1 |
ENG |
201 |
B |
987654321 |
2005 |
3 |
MAT |
120 |
A |
987654321 |
2005 |
3 |
PSYK |
101 |
A |
987654321 |
2006 |
1 |
MAT |
221 |
B |
987654321 |
2006 |
1 |
MAT |
242 |
C |
135791357 |
2005 |
3 |
HIST |
102 |
A |
135791357 |
2005 |
3 |
BILD |
112 |
A |
135791357 |
2006 |
1 |
MAT |
120 |
B |
135791357 |
2006 |
1 |
MAT |
141 |
C |
147025836 |
2005 |
3 |
BIOL |
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 |
Om du vill använda ett kalkylprogram för att ange exempeldata kan du hoppa över följande avsnitt.
Ange exempeldata manuellt
-
Öppna en ny eller befintlig databas.
-
Gå till fliken Skapa i gruppen Tabeller och klicka på Tabell.
En ny, tom tabell läggs till i databasen i Access.
Obs!: Du behöver inte utföra det här steget om du öppnar en ny, tom databas, men du måste utföra det när du behöver lägga till en tabell i databasen.
-
Dubbelklicka på den första cellen i rubrikraden och skriv sedan namnet på fältet i exempeltabellen.
Access anger som standard texten Lägg till nytt fält i rubrikraden på tomma fält:
-
Använd piltangenterna för att gå till nästa tomma rubrikcell och skriv det andra fältnamnet. (Du kan också dubbelklicka på den nya cellen.) Upprepa det här steget för varje fältnamn.
-
Ange data i exempeltabellen.
När du anger data skapar Access en datatyp för varje fält. Varje fält har en specifik datatyp, t.ex. tal, text eller datum/tid. Genom att ställa in datatyper blir det enklare att säkerställa korrekt datainmatning och att undvika misstag, t.ex. att använda ett telefonnummer i en beräkning. Låt Access skapa datatypen för de här enkla tabellerna, men kontrollera att det är rätt datatyp som Access skapar för varje fält.
-
Klicka på Spara eller tryck på CTRL+S när du är klar med datainmatningen.
Dialogrutan Spara som visas.
-
Skriv namnet på exempeltabellen i rutan Tabellnamn och klicka sedan på OK.
Använd namnet för varje exempeltabell (exempelvis Studenthuvudämne), eftersom frågorna i den här artikelns uppgiftsavsnitt också använder de namnen.
När du är klar med inmatningen av exempeldata är du redo att jämföra de båda tabellerna.
Hoppa över följande avsnitt (skapa exempelkalkylblad), om du inte vill lära dig hur du skapar ett kalkylblad som är baserat på exempeldata från tabellerna i föregående avsnitt.
Skapa exempelkalkylbladen
-
Starta kalkylprogrammet och öppna en ny, tom fil. Om du använder Excel skapas en tom arbetsbok som standard när du startar programmet.
-
Kopiera den första exempeltabellen i föregående avsnitt och klistra in den i det första kalkylbladet med början i den första cellen. Se till att du kopierar rubrikraden, eftersom den innehåller fältnamnen för exempeltabellen.
-
Ge kalkylbladet samma namn som exempeltabellen med den metod som gäller för det kalkylprogram du använder. Om du till exempel klistrar in exempeldata för Kursregistrering namnger du kalkylbladet Kursregistrering.
-
Upprepa steg 2 och 3 och kopiera den andra exempeltabellen till ett tomt kalkylblad och döp om kalkylbladet.
Obs!: Du kan behöva lägga till kalkylblad i kalkylbladsfilen. Se hjälpavsnittet för kalkylprogrammet för information om hur du lägger till kalkylblad i kalkylbladsfilen.
-
Spara arbetsboken på en lämplig plats på datorn eller i nätverket och gå till nästa uppsättning steg.
Skapa databastabeller från kalkylbladen
-
Gör följande i en ny eller befintlig databas:
Gå till fliken Externa data och gruppen Importera. Klicka på Excel.
eller
Klicka på Mer och välj sedan ett kalkylprogram i listan.
Dialogrutan Hämta externa Data - <programnamn>-kalkylblad visas.
-
Klicka på Bläddra, sök upp och öppna kalkylbladsfilen som du skapade i föregående steg och klicka sedan på OK.
Guiden Importera kalkylblad startas.
Som standard väljer guiden första kalkylbladet i arbetsboken (Studenthuvudämne, om du har följt stegen i föregående avsnitt) och data från kalkylbladet visas i nedre avsnittet av guidesidan.
-
Klicka på Nästa.
-
Markera kryssrutan Första raden innehåller kolumnrubriker och klicka sedan på Nästa.
-
Du kan också använda textrutorna och listorna under Fältalternativ på nästa sida för att ändra fältnamn och datatyper eller utelämna fält från importen. I det här exemplet behöver du inte ändra något. Klicka på Nästa.
-
Markera alternativet Ingen primärnyckel och klicka sedan på Nästa.
-
I Access används som standard namnet på kalkylbladet för din nya tabell. Godkänn namnet i rutan Importera till tabell och klicka på Slutför.
-
Klicka på Stäng på sidan Spara importsteg för att slutföra guiden.
-
Upprepa steg 1-7 tills du har skapat en tabell från varje kalkylblad i kalkylbladsfilen.
Jämföra exempeltabellerna och söka efter matchande poster genom att använda kopplingar
Nu är du redo att jämföra tabellerna Kursregistrering och Studenthuvudämne. Eftersom du inte har definierat relationer mellan de två tabellerna måste du skapa kopplingar mellan motsvarande fält i frågan. Tabellerna har fler än ett fält gemensamt och du måste skapa en koppling för varje par av de gemensamma fälten: Student-ID, År och Schema (tabellen Kursregistrering) och Huvudämne (tabellen Studenthuvudämne). I det här exemplet är du bara intresserad av matematik som huvudämne, så därför ska också använda ett fältvillkor för att begränsa frågeresultatet.
-
Öppna databasen där du sparade exempeltabellerna.
-
Klicka på Frågedesign på fliken Skapa.
-
Dubbelklicka på tabellen som innehåller de poster som du vill visa – i det här exemplet tabellen Kursregistrering och dubbelklicka sedan på tabellen som du jämför den med – i det här exemplet tabellen Studenthuvudämne .
-
Dra fältet Student-ID från tabellen Kursregistrering till fältet Student-ID i tabellen Studenthuvudämne. Det visas en linje mellan de två tabellerna i designrutnätet, som anger att du har skapat en koppling. Dubbelklicka på linjen för att öppna dialogrutan Kopplingsegenskaper.
-
Granska de tre alternativen i dialogrutan Kopplingsegenskaper. Alternativ 1 är markerat som standard. I vissa fall kan du behöva justera kopplingsegenskaperna så att de omfattar ytterligare rader från en tabell. Lämna kopplingsinställningen som alternativ 1 eftersom du endast försöker hitta matchande data. Stäng dialogrutan Kopplingsegenskaper genom att klicka på Avbryt.
-
Du behöver skapa ytterligare två kopplingar. Skapa de här kopplingarna genom att dra fältet År från tabellen Kursregistrering till fältet År i tabellen Studenthuvudämne och dra sedan fältet Schema från tabellen Kursregistrering till fältet Huvudämne i tabellen Studenthuvudämne.
-
I tabellen Kursregistrering dubbelklickar du på asterisken (*) för att lägga till alla tabellens fält i frågerutnätet.
Obs!: När du lägger till alla fält med asterisken visas endast en kolumn i designrutnätet. Kolumnen som visas har tabellens namn, följt av en punkt (.) och en asterisk (*). I det här exemplet heter kolumnen Kursregistrering.*.
-
Dubbelklicka på fältet Huvudämne i tabellen Studenthuvudämne för att lägga till det i rutnätet.
-
Avmarkera kryssrutan på raden Visa i kolumnen Huvudämne i frågerutnätet.
-
På raden Villkor i kolumnen Huvudämne skriver du MAT.
-
Klicka på Kör i gruppen Resultat på fliken Design.
Sökningen körs och sedan visas endast betygen i matematik för studenter med det här ämnet som huvudämne.
Jämföra två tabeller genom att använda ett fält som villkor
Ibland kanske du vill jämföra tabeller baserat på fält som innehåller överensstämmande data, men har olika datatyper. Ett fält i en tabell kan till exempel ha datatypen Tal och du vill jämföra det fältet med ett fält i en annan tabell som har datatypen Text. Fält som innehåller liknande data men ändå har olika fälttyper kan vara ett resultat av att tal lagras som text, antingen avsiktligt eller av andra skäl, till exempel import av data från ett annat program. Eftersom du inte kan skapa kopplingar mellan fält som har olika datatyper, måste du använda en annan metod för att jämföra fälten. Du kan jämföra två fält som har olika datatyper genom att använda ett fält som ett villkor för det andra.
Anta att du är forskare på en skola och du vill undersöka hur nyligen gjorda schemaändringar på matematikinstitutionen har påverkat studenternas betyg. Du är särskilt intresserad av betygen för studenter som har matematik som huvudämne. Du har redan tabellerna Studenthuvudämne och Kursregistrering. Betygsdata lagras i tabellen Kursregistrering och data om studenthuvudämne lagras i tabellen Studenthuvudämne. Om du vill se hur betygen har ändrats för studenter med matematik som huvudämne måste du titta på poster i tabellen Kursregistrering som har motsvarande poster i tabellen Studenthuvudämne. Ett av de fält som du vill använda för att jämföra tabellerna har dock en annan datatyp än dess motsvarighet.
Om du vill jämföra två tabeller med hjälp av ett fält som ett villkor, kan du skapa en urvalsfråga som innehåller båda tabellerna. Ta med de fält som du vill visa och ta även med det fält som motsvarar fältet som du vill använda som ett villkor. Sedan kan du skapa ett villkor för att jämföra tabellerna. Du kan skapa så många villkor som du vill för att jämföra fält.
För att illustrera denna metod du ska använda exempeltabellerna från föregående avsnitt, men du kommer att ändra datatypen för fältet Student-ID i exempeltabellen Studenthuvudämne från Tal till Text. Eftersom du inte kan skapa en koppling mellan två fält som har olika datatyper, måste du jämföra de två Student-ID-fälten genom att använda ett fält som ett villkor för det andra.
Ändra datatypen för fältet Student-ID i tabellen Studenthuvudämne
-
Öppna databasen där du sparade exempeltabellerna.
-
Högerklicka på tabellen Studenthuvudämne i Navigeringsfönstret och klicka sedan på Designvy på snabbmenyn.
Tabellen Studenthuvudämne öppnas i Designvyn.
-
Ändra inställningarna för Student-ID i kolumnen Datatyp från Tal till Text.
-
Stäng tabellen Studenthuvudämne. När du uppmanas att spara ändringarna klickar du på Ja.
Jämföra exempeltabellerna och söka efter matchande poster genom att använda ett fältvillkor
I följande avsnitt beskrivs hur du jämför två fält för Student-ID genom att använda fältet från Kursregistrering som ett villkor för fältet från Studenthuvudämne. Med hjälp av nyckelordet Som kan du jämföra fälten, även om de har olika datatyper.
-
Klicka på Frågedesign i gruppen Annat på fliken Skapa.
-
Dubbelklicka på Kursregistrering och dubbelklicka sedan på Studenthuvudgrupp.
-
Dra fältet År från tabellen Kursregistrering till fältet År i tabellen Studenthuvudämne och dra sedan fältet Schema från tabellen Kursregistrering till fältet Huvudämne i tabellen Studenthuvudämne. Eftersom dessa fält har samma datatyp kan du jämföra dem med hjälp av kopplingar. Kopplingar är den rekommenderade metoden för att jämföra fält som har samma datatyp.
-
Dubbelklicka på asterisken (*) i tabellen Kursregistrering för att lägga till alla tabellfälten i frågerutnätet.
Obs!: När du lägger till alla fält med asterisken visas endast en kolumn i designrutnätet. Kolumnen som visas har tabellens namn, följt av en punkt (.) och en asterisk (*). I det här exemplet heter kolumnen Kursregistrering.*.
-
Dubbelklicka på fältet Student-ID i tabellen Studenthuvudämne för att lägga till det i rutnätet.
-
Avmarkera kryssrutan på raden Visa i kolumnen Student-ID i rutnätet. Skriv Som [Kursregistrering].[Student-ID] på raden Villkor i kolumnen Student-ID.
-
Dubbelklicka på fältet Huvudämne i tabellen Studenthuvudämne för att lägga till det i rutnätet.
-
Avmarkera kryssrutan på raden Visa i kolumnen Huvudämne i rutnätet. Skriv MAT på raden Villkor.
-
Klicka på Kör i gruppen Resultat på fliken Design.
Sökningen körs och sedan visas endast betygen i matematik för studenter med det här ämnet som huvudämne.