Applies ToAccess för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Ibland är processen med att skapa och använda frågor i Access en enkel fråga om att välja fält från en tabell, kanske tillämpa vissa villkor och sedan visa resultaten. Men tänk om, som ofta är fallet, de data du behöver sprids ut i mer än en tabell? Som tur är kan du skapa en fråga som kombinerar information från flera källor. I det här avsnittet beskrivs några scenarier där du hämtar data från fler än en tabell och visar hur du gör det.

Vad vill du göra?

Använda data från en relaterad tabell för att förbättra informationen i frågan

Det kan finnas fall då en fråga som baseras på en tabell ger dig den information du behöver men där frågeresultatet skulle bli ännu tydligare och mer användbart om du skulle hämta data även från en annan tabell. Anta till exempel att du har en lista över anställnings-ID:n som visas i frågeresultatet. Du inser att det skulle blir mer användbart om de anställdas namn visades i resultatet, men namnen finns i en annan tabell. För att få namnen på de anställda att visas i frågeresultatet måste du inkludera båda tabellerna i frågan.

Använda Frågeguiden till att skapa en fråga utifrån en primär tabell och en relaterad tabell

  1. Kontrollera att tabellera har en definierad relation i fönstret Relationer.

    Hur gör jag?

    1. På fliken Databasverktyg, i gruppen Visa/Dölj klickar du på Relationer.

    2. Klicka på Alla relationer i gruppen Relation på fliken Design.

    3. Identifiera tabellerna som ska ha en definierad relation.

      • Om tabellerna visas i fönstret Relationer kontrollerar du att en relation redan har definierats.

        En relation visas som en linje som förbinder de två tabellerna i ett gemensamt fält. Du kan dubbelklicka på en relationslinje för att se vilka fält i tabellen som kopplas samman av relationer.

      • Om tabellerna inte visas i fönstret Relationer måste du lägga till dem.

        Klicka på Tabellnamn i gruppen Visa/dölj på fliken Design.

        Dubbelklicka på varje tabell du vill visa och klicka sedan på Stäng.

    4. Om du inte hittar en relation mellan de två tabellerna skapar du en genom att dra ett fält från en av tabellerna till ett fält i den andra tabellen. Fälten där du skapar relationen mellan tabellerna måste ha identiska datatyper.

      Obs!: Du kan skapa en relation mellan ett fält som är av typen AutoNumber-datatyp och ett fält som är av typen Number-datatyp, om det fältet har fältstorleken långt heltal. Det är ofta fallet när du skapar en en-till-många-relation.

      Dialogrutan Redigera relationer visas.

    5. Klicka på skapa för att skapa relationen.

      Mer information om vilka alternativ som finns när du skapar en relation finns i artikeln Skapa, redigera eller ta bort en relation.

    6. Stänga fönstret Relationer

  2. På fliken Skapa i gruppen Frågor klickar du på Frågeguiden

  3. Klicka på Frågeguiden i dialogrutan Ny fråga, och sedan på OK.

  4. I kombinationsrutan Tabeller/frågor klickar du på den tabell som innehåller den grundläggande information du vill inkludera i frågan.

  5. I listan Tillgängliga fält klickar du på det första fältet som du vill inkludera i frågan och sedan på den enkla högerpilen för att flytta det fältet till listan Markerade fält. Gör samma sak med varje ytterligare fält från den tabellen som du vill inkludera i fråga. Det kan vara fält som du vill ska returneras i frågeresultatet eller fält som du vill använda till att begränsa raderna i utdata genom att tillämpa villkor.

  6. I kombinationsrutan Tabeller/frågor klickar du på den tabell som innehåller de relaterade data du vill använda för att förbättra frågeresultatet.

  7. Lägg till de fält du vill använda för att förbättra frågeresultatet i listan Markerade fält och klicka sedan på Nästa.

  8. Under Vill du ha en detaljfråga eller en sammanfattningsfråga? klickar du på Detalj eller Sammanfattning.

    Om du inte vill att frågan ska utföra några mängdfunktioner (Summa, Medel, Min, Max, Antal, Stdav eller Varians) väljer du en detaljfråga. Om du vill att frågan ska utföra en mängdfunktion väljer du en sammanfattningsfråga. Klicka på Nästa när du har gjort ditt val.

  9. Klicka på Slutför om du vill visa resultatet.

Ett exempel som använder Northwind-exempeldatabasen

I följande exempel använder du Frågeguiden till att skapa en fråga som visar en lista över order, leveransavgiften för varje order och namnet på den anställda som har hanterat varje order.

Obs!: Det här exemplet handlar om att ändra Northwind-exempeldatabasen. Du kanske vill göra en säkerhetskopia av Northwind-exempeldatabasen och sedan följa exemplet genom att använda den säkerhetskopian.

Använda Frågeguiden till att skapa en fråga

  1. Öppna Northwind-exempeldatabasen. Stäng inloggningsformuläret.

  2. På fliken Skapa i gruppen Frågor klickar du på Frågeguiden

  3. Klicka på Frågeguiden i dialogrutan Ny fråga, och sedan på OK.

  4. I kombinationsrutan Tabeller/frågor klickar du på Tabell: Order.

  5. I fältet Tillgängliga fält dubbelklickar du på Ordernr för att flytta det fältet till Markerade fält. Dubbelklicka på Leveransavgift för att flytta det fältet till listan Markerade fält.

  6. I kombinationsrutan Tabeller/frågor klickar du på Tabell: Anställda.

  7. I fältet Tillgängliga fält dubbelklickar du på Förnamn för att flytta det fältet till Markerade fält. Dubbelklicka på Efternamn för att flytta det fältet till listan Markerade fält. Klicka på Nästa.

  8. Eftersom du skapar en lista över alla order ska du använda en detaljfråga. Om du summerar leveransavgiften efter anställd eller utför någon annan mängdfunktion ska du använda en sammanfattningsfråga. Klicka på Detalj (visar varje fält i varje post) och sedan på Nästa.

  9. Klicka på Slutför om du vill visa resultatet.

Frågan returnerar en lista över order, var och en med leveransavgiften samt för- och efternamnet på den anställda som har hanterat den.

Överst på sidan

Koppla samman data i två tabeller genom att använda deras relationer med en tredje tabell

Ofta är data i två tabeller relaterade till varandra via en tredje tabell. Det beror vanligtvis på att data mellan de två första tabellerna är relaterade i en många-till-många-relation. Ofta är det en bra metod för databasdesign att dela upp en många-till-många-relation mellan två tabeller i två en-till-många-relation som innefattar tre tabeller. Det gör du genom att skapa en tredje tabell, en så kallad kopplingstabell eller relationstabell, som har en primärnyckel och en sekundärnyckel för var och en av de andra tabellerna. En en-till-många-relation skapas sedan mellan varje sekundärnyckel i kopplingstabellen och motsvarande primärnyckel i en av de andra tabellerna. I sådana fall måste du inkludera alla tre tabellerna i frågan, även om du bara vill hämta data från två av dem.

Skapa en urvalsfråga genom att använda tabeller med en många-till-många-relation

  1. Klicka på Frågedesign i gruppen Frågor på fliken Skapa

  2. Dubbelklicka på de två tabeller som innehåller de data du vill ta med i frågan och även kopplingstabellen som länkar dem och klicka sedan på Stäng.

    Alla tre tabeller visas på frågearbetsytan, kopplade via lämpliga fält.

  3. Dubbelklicka på varje fält du vill använda i frågeresultatet. Varje fält visas då i designrutnät för frågan.

  4. I frågerutnätet använder du raden Villkor för att ange fältvillkoren. Om du vill använda ett fältvillkor utan att visa fältet i frågeresultatet markerar du kryssrutan på raden Visa för det fältet.

  5. Om du vill sorterar resultatet baserat på värdena i ett fält klickar du på Stigande eller Fallande i frågerutnätet (beroende på vilket sätt du vill sortera posterna på) på raden Sortera för det fältet.

  6. Klicka på Kör i gruppen Resultat på fliken Design.

    Access visar frågeresultatet i Databladsvy.

Ett exempel som använder Northwind-exempeldatabasen

Obs!: Det här exemplet handlar om att ändra Northwind-exempeldatabasen. Du kanske vill göra en säkerhetskopia av Northwind-exempeldatabasen och sedan följa exemplet genom att använda säkerhetskopian.

Anta att du har en ny affärsmöjlighet: en leverantör i Rio de Janeiro har hittat din webbplats och vill göra affärer med dig. Men det företaget har bara verksamhet i Rio och närliggande São Paulo. De tillhandahåller alla matproduktskategorier som ni för handlar om. Det är ett ganska stort företag och vill ha garantier från dig att du kan ge dem tillgång till tillräckligt mycket potentiell försäljning så att det är värt affären: minst 20 000,00 BRL per år (cirka 9 300,00 USD). Kan du ge dem den marknad de kräver?

De data du behöver för att svara på frågan finns på två platser: tabellen Kunder och tabellen Orderinformation. Dessa tabeller är länkade till varandra via tabellen Order. Relationerna mellan tabellerna har redan definierats. I tabellen Order kan varje order bara ha en kund, relaterad till tabellen Kunder i fältet Kund-ID. Varje post i tabellen Orderinformation är bara relaterad till en order i tabellen Order, i fältet Order-ID. Alltså kan en viss kund ha många order, med mycket orderinformation i varje order.

I det här exemplet skapar du en korsfråga som visar den totala försäljningen per år, i städerna Rio de Janeiro och São Paulo.

Skapa frågan i designvyn

  1. Öppna Northwind-databasen. Stäng inloggningsformuläret.

  2. Klicka på Frågedesign i gruppen Frågor på fliken Skapa

  3. Dubbelklicka på Kunder, Order och sedan påOrderinformation.

    Alla tre tabellerna visas i frågearbetsytan.

  4. I tabellen Kunder dubbelklickar du på fältet Ort för att lägga till den i frågerutnätet.

  5. I frågerutnätet, i kolumnen Ort, på raden Villkor skriver du I ("Rio de Janeiro","São Paulo"). Det här leder till att bara de poster där kunden finns i någon av de två städerna inkluderas i frågan.

  6. I tabellen Orderdetaljer dubbelklickar du på fälten Skeppningsdatum och Enhetspris.

    Fälten läggs till i frågerutnätet.

  7. I kolumnen Skeppningsdatum i frågerutnätet väljer du raden Fält. Ersätt [Skeppningsdatum] med År: Format([Skeppningsdatum],"yyyy"). Det skapar ett fältalias, År, där du kan använda bara årsdelen av värdet i fältet Skeppningsdatum.

  8. I kolumnen Enhetspris i frågerutnätet väljer du raden Fält. Ersätt [Enhetspris] med Försäljning: [Orderdetaljer].[Enhetspris]*[Kvantitet]-[Orderdetaljer].[Enhetspris]*[Kvantitet]*[Rabatt]. Det skapar ett fältalias, Försäljning, som beräknar försäljningen för varje post.

  9. Klicka på Korsfråga i gruppen Frågetyp på fliken Design.

    Två nya rader, Summa och Korsfråga, visas i frågerutnätet.

  10. I kolumnen Ort i frågerutnätet klickar du på raden Korsfråga och klicker sedan på Radrubrik.

    Ortsvärdena visas då som radrubriker (frågan returnerar alltså en rad för varje ort).

  11. I kolumnen År klickar du på raden Korsfråga och klickar sedan på Kolumnrubrik.

    Årsvärdena visas då som kolumnrubriker (frågan returnerar alltså en kolumn för varje år).

  12. I kolumnen Försäljning klickar du på raden Korsfråga och klickar sedan på Värde.

    Försäljningsvärdena visas då i skärningspunkten mellan rader och kolumn (frågan returnerar alltså ett försäljningsvärde för varje kombination av ort och år).

  13. I kolumnen Försäljning klickar du på raden Summor och klickar sedan på Summa.

    Då summerar frågan värdena i kolumnen.

    Du kan på raden Summor för de andra två kolumnerna lämna standardvärdet för Gruppera efter, eftersom du vill se varje värde för dessa kolumner, inte aggregerade värden.

  14. Klicka på Kör i gruppen Resultat på fliken Design.

Nu har du en fråga som returnerar totalförsäljningen per år i Rio de Janeiro och São Paulo.

Överst på sidan

Visa alla poster från två liknande tabeller

Ibland vill du kombinera data från två tabeller som har identisk struktur men där en av dem finns i en annan databas. Tänk dig följande scenario.

Anta att du är analytiker som jobbar med elevinformation. Du ska ta dig an ett datadelningsprojekt mellan din skola och en annan, så att båda skolorna kan förbättra sina kursplaner. För vissa av frågorna du vill utforska skulle det vara bättre att titta på alla poster från båda skolorna tillsammans, istället för att titta på skolornas poster separat.

Du kan importera den andra skolans information till nya tabeller i databasen men då skulle inte ändringar av den andra skolans data inte återspeglas i databasen. En bättre lösning skulle vara att länka den andra skolans tabeller och sedan skapa frågor som kombinerar data när du kör dem. Du skulle kunna analysera data som en uppsättning istället för att utföra två analyser och försöka tolka dem som om de vore en.

Om du vill visa alla poster från två tabeller med identisk struktur använder du en union-fråga.

Unionsfrågor kan inte visas i designvyn. Du skapar dem genom att använda SQL-kommandon som du anger på SQL-vy-objektflik.

Skapa en unionsfråga genom att använda två tabeller

  1. Klicka på Frågedesign i gruppen Frågor på fliken Skapa

  2. Klicka på Union i gruppen Frågetyp på fliken Design.

    Frågan växlar från design- till SQL-vy. I det här läget är SQL-vyns objektflik tom.

  3. I SQL-vyn skriver du SELECT, följt av en lista med fält från den första av tabellerna du vill använda i frågan. Fältnamnen ska omges av hakparenteser och avgränsas med kommatecken. När du har skrivit klart fältnamnen trycker du på RETUR. Markören flyttas ned en rad i SQL-vyn.

  4. Skriv FROM, följt av namnet på den första av de tabeller du vill använda i frågan. Tryck på RETUR.

  5. Om du vill ange ett villkor för ett fält från den första tabellen skriver du WHERE, följt av fältnamnet, en jämförelseoperator (vanligtvis ett likhetstecken (=)) och villkoret. Du kan lägga till fler villkor i slutet av WHERE-satsen genom att använda AND-nyckelordet och samma syntax som används för det första villkoret, till exempel WHERE [Klassnivå]="100" AND [Kredittimmar]>2. När du är klar med att ange villkor tycker du på RETUR.

  6. Skriv UNION och tryck sedan på RETUR.

  7. Skriv SELECT, följt av en lista med fält från den andra tabellen du vill använda i frågan. Du bör inkludera samma fält från den här tabellen som du har tagit med från den första tabellen, och i samma ordning. Fältnamnen ska omges av hakparenteser och avgränsas med kommatecken. När du har skrivit klart fältnamnen trycker du på RETUR.

  8. Skriv FROM, följt av namnet på den andra tabellen du vill inkludera i frågan. Tryck på RETUR.

  9. Om du vill lägger du till en WHERE-sats, enligt beskrivningen i steg 6 av den här proceduren.

  10. Skriv ett semikolon (;) för att ange slutet av frågan.

  11. Klicka på Kör i gruppen Resultat på fliken Design.

    Resultatet visas i vyn Datablad.

Överst på sidan

Se även

Koppla tabeller och frågor

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.