Med hjälp av en fråga blir det enklare att visa, lägga till, ta bort eller ändra data i en Access-databas. Några andra anledningar till att använda frågor:
Hitta snabbt specifika data genom att filtrera på specifika villkor
Beräkna eller summera data
Automatisera datahanteringsuppgifter, till exempel att regelbundet granska senast tillgängliga data.
Frågor hjälper dig att hitta och arbeta med dina data
I en väl utformad databas, finns de data du vill presentera i ett formulär eller en rapport normalt i flera olika tabeller. En fråga kan hämta information från olika tabeller och ordna den för visning i formuläret eller rapporten. En fråga kan antingen vara en begäran om dataresultat från databasen eller om åtgärd på dina data, eller bådadera. En fråga kan ge dig ett svar på en enkel fråga, utföra beräkningar, kombinera data från olika tabeller, lägga till, ändra eller ta bort data från en databas. Eftersom frågor är så mångsidiga finns det många olika typer av frågor och du skulle skapa en typ av fråga baserat på uppgiften.
| Huvudsakliga typer av frågor | Använd |
|---|---|
| Urval | Om du vill hämta data från en tabell eller göra beräkningar. |
| Redigering | Lägg till, ändra eller ta bort data. Varje åtgärd har en specifik redigeringsfråga. |
Skapa en urvalsfråga
Om du vill granska data från bara vissa fält i en tabell, granska data från flera tabeller samtidigt eller kanske bara visa data baserat på vissa villkor, väljer du en frågetyp. Mer information finns i Skapa en enkel urvalsfråga.
Granska data från valda fält
Om databasen till exempel innehåller en tabell med mycket information om produkter och du vill granska en lista över produkter och deras priser, skapar du en urvalsfråga så att den bara returnerar produktnamnen och motsvarande pris:
- Öppna databasen och klicka på Frågedesign på fliken Skapa.
- Dubbelklicka på tabellen Produkter på fliken Tabeller.
- Anta att du har fälten Produktnamn och Listpris i tabellen Produkter. Dubbelklicka på Produktnamn och Listpris för att lägga till dessa fält i frågerutnätet.
- Klicka på Kör på fliken Frågedesign. Frågan körs och visar en lista med produkter och deras priser.
Granska data från flera relaterade tabeller samtidigt
Anta till exempel att du har en databas för en butik som säljer matvaror och du vill granska order för kunder som bor i en viss stad. Anta att data om order och data om kunder lagras i två tabeller med namnen Kunder respektive Order. Om varje tabell har fältet Kund-ID, som används för att skapa en 1:N-relation mellan de två tabellerna. Du kan skapa en fråga som visar order för kunder i en viss stad, till exempel Las Vegas, på följande sätt:
- Öppna databasen. På fliken Skapa i gruppen Fråga klickar du på Frågedesign.
- Dubbelklicka på Kunder och Order på fliken Tabeller.
Lägg märke till linjen (en så kallad koppling) som förbinder ID-fältet i tabellen Kunder och fältet Kund-ID i tabellen Order. Den här raden visar relationen mellan de två tabellerna. - Dubbelklicka på Företag och Ort i tabellen Kunder för att lägga till dessa fält i frågerutnätet.
- Avmarkera kryssrutan på raden Visa i kolumnen Ort i frågerutnätet.
- På raden Villkor i kolumnen Ort skriver du Las Vegas.
Om du avmarkerar kryssrutan Visa visas inte staden i frågans resultat, och om du skriver Las Vegas på raden Villkor anger det att du endast vill visa poster där värdet i fältet Ort är Uppsala. I det här fallet returnerar frågan endast de kunder som finns i Las Vegas. Du behöver inte visa ett fält för att använda det med ett villkor. - I tabellen Order dubbelklickar du på Order-ID och Orderdatum för att lägga till dessa fält i de nästa två kolumnerna i frågerutnätet.
- Klicka på Kör i gruppen Resultat på fliken Frågedesign. Frågan körs och sedan visas en lista över order för kunder i Las Vegas.
- Spara frågan genom att trycka på CTRL+S.
Skapa en parameterfråga
Om du ofta behöver köra varianter av en viss fråga kan det vara värt att använda en parameterfråga. När du kör en parameterfråga, ber frågan dig ange fältvärden och använder sedan värdena du anger för att skapa villkor för frågan.
Om vi fortsätter från föregående exempel där du lärde dig att skapa en urvalsfråga som returnerar order för kunder i Las Vegas, kan du ändra urvalsfrågan så att du uppmanas att ange staden varje gång du kör frågan. Om du vill följa med öppnar du databasen som du skapade i föregående exempel:
I navigeringsfönstret högerklickar du på frågan Order efter stad (som du skapade i föregående avsnitt) och klickar sedan på Designvy på snabbmenyn.
Ta bort Las Vegas i frågerutnätets villkorsrad i kolumnen Ort och skriv sedan [För vilken stad?].
Strängen [För vilken stad?] är din parameterprompt. Hakparenteserna anger att du vill att frågan ska fråga om ett indatavärde medan texten (För vilken stad? i det här fallet) är själva frågan som parameterprompten visar.Obs
Varken en punkt (.) eller ett utropstecken (!) kan användas som text i en parameterprompt.
Markera kryssrutan på raden Visa i kolumnen Ort så att staden visas i sökresultaten.
Klicka på Kör i gruppen Resultat på fliken Frågedesign. Du uppmanas att ange ett värde för Ort.
Skriv New York och tryck sedan på RETUR för att se order för kunder i New York.
Vad gör du om du inte vet vilka värden du kan ange? Du kan använda jokertecken som en del av uppmaningen:Klicka på Visa i gruppen Vyer på fliken Start och klicka sedan på Designvy.
I frågerutnätet, på raden Villkor i kolumnen Ort, skriver du Som [För vilken stad?]&"*".
I den här parameterprompten gör nyckelordet Like , et-tecknet (&) och asterisken (*) inom citattecken att användaren kan skriva en kombination av tecken, inklusive jokertecken, för att returnera en mängd olika resultat. Om användaren till exempel skriver *returnerar frågan alla orter. Om användaren skriver L returneras alla orter som börjar på bokstaven "L;" och om användaren skriver *s* returneras alla orter som innehåller bokstaven "s".Klicka på Kör i gruppen Resultat på fliken Frågedesign, skriv Nytt i frågeprompten och tryck på RETUR.
Frågan körs och sedan visas order för kunder i New York.
Ange parameterns datatyper
Du kan även ange vilken typ av data en parameter ska hantera. Datatypen kan ställas in för alla parametrar, men det är särskilt viktigt att ställa in datatypen för numeriska data, valutor samt datum/tid. När du anger datatypen som en parameter ska acceptera, visas ett felmeddelande för användaren om han eller hon anger fel typ av data, till exempel skriver text i stället för valuta.
Om en parameter anges till att acceptera textdata, tolkas alla inmatningar som text och inget felmeddelande visas.
Så här anger du datatypen för parametrar i en fråga:
- Klicka på Parametrar i gruppen Visa/dölj på fliken Frågedesign när frågan är öppen i designvyn.
- I kolumnen Parameter i dialogrutan Frågeparametrar skriver du uppmaningen för respektive parameter som du vill ange datatypen för. Se till att varje parameter matchar uppmaningen som du använder i raden Villkor i frågerutnätet.
- Välj datatyp för respektive parameter i kolumnen Datatyp.
Mer information finns i Använda parametrar för att begära indata när en fråga körs.
Skapa en summafråga
Summaraden i ett datablad är mycket användbar, men för mer komplexa frågor kan du använda en summafråga. En summafråga är en urvalsfråga som låter dig gruppera och sammanfatta data, till exempel när du vill se den totala försäljningen per produkt. I en summafråga kan du använda funktionen Summa (en mängdfunktion) för att se den totala försäljningen per produkt.
Använd följande procedur för att ändra frågan Produktdelsummor som du skapade i föregående exempel så att den sammanfattar produktdelsummor per produkt.
-
Klicka på>Visa designvy på fliken Start.
Frågan Produktdelsummor öppnas i designvyn. - Klicka på Summor i gruppen Visa/dölj på fliken Frågedesign.
Summaraden visas i frågerutnätet.
Obs
Även om de har liknande namn är summaraden i designrutnätet och summaraden i ett datablad inte samma sak:
- Du kan gruppera efter fältvärden med hjälp av raden Summor i designrutnätet.
- Du kan lägga till en summarad i databladsresultatet för en summafråga.
- När du använder raden Summor i designrutnätet måste du välja en mängdfunktion för varje fält. Om du inte vill utföra en beräkning på ett fält kan du gruppera efter fältet.
- I den andra kolumnen i designrutnätet, på raden Summa , väljer du Summa i listrutan.
- Klicka på Kör i gruppen Resultat på fliken Frågedesign. Frågan körs och sedan visas en lista över produkter med delsummor.
- Spara frågan genom att trycka på CTRL+S. Lämna frågan öppen.
Mer information finns i Visa kolumnsummor i ett datablad med en summarad.
Göra beräkningar baserat på dina data
Vanligtvis använder du inte tabeller för att lagra beräknade värden, till exempel delsummor, även om de baseras på data i samma databas, eftersom beräknade värden kan bli inaktuella om värdena de baseras på ändras. Du skulle till exempel inte lagra någons ålder i en tabell, eftersom du skulle behöva uppdatera värdet varje år. I stället lagrar du personens födelsedatum och använder sedan en fråga för att beräkna personens ålder.
Till exempel om du har en databas för några produkter som du vill sälja. Den här databasen har en tabell med namnet Orderdetaljer som innehåller information om produkterna i fält som pris för varje produkt och kvantiteter. Du kan beräkna delsumman med hjälp av en fråga som multiplicerar antalet av varje produkt med enhetspriset för den produkten, multiplicerar antalet av varje produkt med enhetspriset och rabatten för den produkten och sedan subtraherar den totala rabatten från det totala enhetspriset. Om du skapade exempeldatabasen i exemplet ovan öppnar du den och följer med:
- Klicka på Frågedesign på fliken Skapa.
- Dubbelklicka på Orderdetaljer på fliken Tabeller.
- Dubbelklicka på Produkt-ID i tabellen Orderdetaljer för att lägga till det här fältet i den första kolumnen i frågerutnätet.
- Högerklicka på raden Fält i den andra kolumnen i rutnätet och klicka sedan på Zooma på snabbmenyn.
- I rutan Zooma skriver eller klistrar du in följande: Delsumma: ([Antal]*[Enhetspris])-([Antal]*[Enhetspris]*[Rabatt])
- Klicka på OK.
- Klicka på Kör på fliken Frågedesign. Frågan körs och sedan visas en lista över produkter och delsummor per order.
- Tryck på CTRL+S för att spara frågan och ge frågan namnet Product Subtotals.
Mer information finns i Visa kolumnsummor i ett datablad med en summarad.
Visa summerade eller sammanställda data
När du använder tabeller för att registrera transaktioner eller lagra regelbundet förekommande numeriska data är det praktiskt att kunna granska dessa data i aggregerad form, till exempel summor eller medelvärden. I Access kan du lägga till en summarad i ett datablad. Summarad är en rad längst ned i databladet som kan visa en löpande summa eller annat aggregerat värde.
- Kör frågan Produktdelsummor som du skapade tidigare och lämna resultatet öppet i vyn Datablad.
- Klicka på Summor på fliken Start. Längst ned i databladet visas en ny rad med ordet Summa i den första kolumnen.
- Klicka på cellen i den sista raden i databladet med namnet Summa.
- Klicka på pilen för att visa tillgängliga mängdfunktioner. Eftersom kolumnen innehåller textdata finns det bara två alternativ: Ingen och Antal.
- Välj Antal. Innehållet i cellen ändras från Totalt till antalet av kolumnvärdena.
- Klicka på den intilliggande cellen (den andra kolumnen). Observera att en pil visas i cellen.
- Klicka på pilen och sedan på Summa. I fältet visas summan av kolumnvärdena.
- Lämna frågan öppen i databladsvyn.
Skapa en korsfråga
Anta nu att du vill granska delsummor för produkter, men också vill aggregera per månad, så att varje rad visar delsummor för en produkt och varje kolumn visar delsummor för en månad. Använd en korsfråga om du vill visa delsummor för en produkt och delsummor för en månad.
Du kan ändra frågan Produktdelsummor igen så att frågan returnerar rader med produktdelsummor och kolumner med månatliga delsummor.
- Klicka på Visa i gruppen Vyer på fliken Start och klicka sedan på Designvy.
- Klicka på Lägg till tabeller i gruppen Skapa fråga.
- Dubbelklicka på Order och klicka sedan på Stäng.
- Klicka på Korsfråga i gruppen Frågetyp på fliken Frågedesign. I designrutnätet döljs raden Visa och raden Korsfråga visas.
- Högerklicka på raden Fält i den tredje kolumnen i designrutnätet och klicka sedan på Zooma på snabbmenyn. Rutan Zooma öppnas.
- I rutan Zooma skriver du eller klistrar in följande: Month: "Month " & DatePart("m", [Order Date])
- Klicka på OK.
- Välj följande värden i listrutan på raden Korstabell : Radrubrik för den första kolumnen, Värde för den andra kolumnen och Kolumnrubrik för den tredje kolumnen.
- Klicka på Kör i gruppen Resultat på fliken Frågedesign. Frågan körs och sedan visas produktdelsummor, aggregerade per månad.
- Spara frågan genom att trycka på CTRL+S.
Mer information om korsfrågor finns i Göra sammanfattningsdata lättare att läsa med hjälp av en korsfråga.
Skapa en tabellfråga
Du kan använda en tabellfråga för att skapa en ny tabell från data som lagras i andra tabeller.
Anta till exempel att du vill skicka data för Chicago-order till en affärspartner i Chicago som använder Access för att förbereda rapporter. I stället för att skicka alla dina orderdata vill du begränsa de data som du skickar till data som är specifika för Chicago-order.
Du kan skapa en urvalsfråga som innehåller Chicago-orderdata och sedan använda urvalsfrågan för att skapa den nya tabellen på följande sätt:
Öppna exempeldatabasen från föregående exempel.
Om du vill köra en tabellfråga kan du behöva aktivera databasinnehållet.Obs
Om du ser ett meddelande under menyfliksområdet om att aktivera databasen, klicka på **Aktivera innehåll.**Om databasen redan finns på en betrodd plats kommer du inte att se meddelandefältet.
På fliken Skapa i gruppen Fråga klickar du på Frågedesign.
Dubbelklicka på Orderdetaljer och Order.
I tabellen Order dubbelklickar du på Kundnr och Leveransort för att lägga till dessa fält i designrutnätet.
Dubbelklicka på Order-ID,Produkt-ID, Kvantitet, Enhetspris och Rabatt i tabellen Orderdetaljer för att lägga till dessa fält i designrutnätet.
Avmarkera rutan på raden Visa i kolumnen Leveransort i rutnätet. På raden Villkor skriver du "Chicago" (inkludera enkla citattecken). Verifiera frågeresultatet innan du använder det för att skapa tabellen.
Klicka på Kör i gruppen Resultat på fliken Frågedesign.
Tryck på Ctrl + S för att spara frågan.
I rutan Frågenamn skriver du Chicago Orders Query och klickar sedan på OK.
Klicka på Visa i gruppen Vyer på fliken Start och klicka sedan på Designvy.
Klicka på Gör tabell i gruppen Frågetyp på fliken Frågedesign.
I dialogrutan Tabell, i rutan Tabellnamn, skriver du Chicago-order och klickar sedan på OK.
Klicka på Kör i gruppen Resultat på fliken Frågedesign.
Klicka på Ja i bekräftelsedialogrutan och se den nya tabellen i navigeringsfönstret.
Obs
Om det redan finns en tabell med samma namn som du angav, tas den tabellen bort innan frågan körs.
Mer information om hur du använder tabellfrågor finns i Skapa en tabellfråga.
Skapa en tilläggsfråga
Du kan använda en tilläggsfråga för att hämta data från en eller flera tabeller och lägga till dessa data i en annan tabell.
Anta till exempel att du har skapat en tabell som ska delas med en affärspartner i Chicago, men du inser att denna tabell även arbetar med klienter i Milwaukee-området. Du vill lägga till rader som innehåller Milwaukee-områdesdata i tabellen innan du delar tabellen med din medarbetare. Du kan lägga till områdesdata för Milwaukee i tabellen Chicago-order på följande sätt:
- Öppna frågan med namnet "Chicago-orderfråga" som du skapade tidigare i designvyn.
- Klicka på Lägg till i gruppen Frågetyp på fliken Frågedesign. Dialogrutan Tillägg öppnas.
- I dialogrutan Tilläggsfråga klickar du på pilen i rutan Tabellnamn, väljer Chicago-order i listrutan och klickar sedan på OK.
- Ta bort "Chicago" på raden Villkor i kolumnen Leveransort i designrutnätet och skriv sedan "Milwaukee".
- Markera lämpligt fält för varje kolumn på raden Tillägg .
I det här exemplet ska värdena i raden Tillägg till matcha fältets radvärden, men det krävs inte för att tilläggsfrågor ska fungera. - Klicka på Kör i gruppen Resultat på fliken Frågedesign.
Obs
När du kör en fråga som returnerar en stor mängd data kan ett felmeddelande visas som anger att du inte kan ångra frågan. Prova att öka gränsen för minnessegmentet till 3 MB så att frågan kan köras.
Mer information om tilläggsfrågor finns i Lägga till poster i tabellen med en tilläggsfråga.
Skapa en uppdateringsfråga
Du kan använda en uppdateringsfråga för att ändra data i dina tabeller och du kan använda en uppdateringsfråga för att ange villkor för att ange vilka rader som ska uppdateras. En uppdateringsfråga ger dig möjlighet att granska uppdaterade data innan du utför uppdateringen.
Viktigt!
En redigeringsfråga kan inte ångras. Du bör överväga att säkerhetskopiera alla tabeller som du uppdaterar med hjälp av en uppdateringsfråga.
I exemplet ovan lade du till rader i tabellen Chicago-order. I tabellen Chicago-order visar fältet Produkt-ID det numeriska produkt-ID:t. Om du vill göra informationen mer användbar i rapporterna kan du ersätta produkt-ID:n med produktnamn. Gör så här:
Öppna tabellen Chicago-order i designvyn.
Ändra datatypen från Tal till Text på raden Produkt-ID.
Spara och stäng tabellen Chicago-order.
På fliken Skapa i gruppen Fråga klickar du på Frågedesign.
Dubbelklicka på Chicago Order och Produkter.
Klicka på Uppdatera i gruppen Frågetyp på fliken Frågedesign.
I designrutnätet försvinner raderna Sortera och Visa och raden Uppdatera till visas.
Dubbelklicka på Produkt-ID i tabellen Chicago-order för att lägga till det här fältet i designrutnätet.
I raden Uppdatera till i kolumnen Produkt-ID i designrutnätet skriver eller klistrar du in följande: [Produkter].[ Produktnamn]
Tips
Du kan använda en uppdateringsfråga för att ta bort fältvärden med hjälp av en tom sträng ("") eller med NULL i raden Uppdatera till .
På raden Villkor skriver eller klistrar du in följande: [Produkt-ID] Som ([Produkter].[ ID])
Du kan granska vilka värden som kommer att ändras av en uppdateringsfråga genom att visa frågan i databladsvyn.
Klicka på> Visadatabladsvy på fliken Design. Frågan returnerar en lista med produkt-ID:n som kommer att uppdateras.
Klicka på Kör på fliken Frågedesign.
När du öppnar tabellen Chicago-order ser du att de numeriska värdena i fältet Produkt-ID har ersatts av produktnamnen från tabellen Produkter.
Mer information om uppdateringsfrågor finns i avsnittet Skapa och köra en uppdateringsfråga.
Skapa en borttagningsfråga
Du kan använda en borttagningsfråga för att ta bort data från tabellerna och en borttagningsfråga för att ange villkor för vilka rader som ska tas bort. En borttagningsfråga ger dig möjlighet att se vilka rader som kommer att tas bort innan de raderas.
Anta t.ex. att du, medan du förbereder för att skicka tabellen Chicago-order från föregående exempel, till din affärspartner i Göteborg upptäcker att vissa av raderna innehåller ett antal tomma fält. Du bestämde dig för att ta bort dessa rader innan du skickade tabellen. Du kan helt enkelt öppna tabellen och ta bort raderna manuellt, men om du har många rader att ta bort och du har tydliga villkor för vilka rader som ska tas bort kan det vara bra att använda en borttagningsfråga.
Du kan använda en fråga för att ta bort rader i tabellen Chicago-order som inte har något värde för Order-ID på följande sätt:
- Klicka på Frågedesign på fliken Skapa.
- Dubbelklicka på Chicago-ordrar.
- Klicka på Ta bort i gruppen Frågetyp på fliken Frågedesign. I designrutnätet försvinner raderna Sortera och Visa och raden Ta bort visas.
- Lägg till det i rutnätet genom att dubbelklicka på Order-ID i tabellen Chicago-order.
- I designrutnätet, på raden Villkor i kolumnen Order-ID, skriver du Är Null.
- Klicka på Kör i gruppen Resultat på fliken Frågedesign.
Mer information om borttagningsfrågor finns i Skapa och köra en borttagningsfråga.