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 orsaker till att använda frågor:
-
Hitta specifika data snabbt genom att filtrera på specifika villkor
-
Beräkna eller summera data
-
Automatisera datahanteringsuppgifter, till exempel att regelbundet granska de senaste 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 informationen från olika tabeller och sammanställa den för visning i formuläret eller rapporten. En fråga kan antingen vara en begäran om dataresultat från databasen eller en åtgärd för data, eller för båda. 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ågorna är så mångsidiga finns det många 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 bara vill granska data från vissa fält i en tabell, eller granska data från flera tabeller samtidigt eller kanske bara se data baserat på vissa villkor, är en urvalsfrågetyp ditt val. Mer information finns i Skapa en enkel urvalsfråga.
Granska data från valda fält
Om databasen till exempel har en tabell med mycket information om produkter och du vill granska en lista över produkter och deras priser, gör du så här för att skapa en urvalsfråga för att returnera bara produktnamnen och respektive 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ågan designrutnät.
-
Klicka på Kör på fliken Frågedesign. Frågan körs och visar en lista över produkter och deras priser.
Granska data från flera relaterade tabeller samtidigt
Om du till exempel har en databas för en butik som säljer matartiklar och du vill granska beställningar 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 Kundnr, som utgör grunden för en en-till-många-relation mellan de två tabellerna. Du kan skapa en fråga som returnerar order för kunder i en viss stad, till exempel Las Vegas, genom att använda följande procedur:
-
Öppna databasen. På fliken Skapa i gruppen Fråga klickar du på Frågedesign.
-
Dubbelklicka på Kunder och order på fliken Tabeller.
Observera raden (kallas för koppling) som ansluter ID-fältet i tabellen Kunder och fältet Kundnr i tabellen Order. Den här raden visar relationen mellan de två tabellerna.
-
I tabellen Kunder dubbelklickar du på Företag och ort för att lägga till fälten 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 hindrar du frågan från att visa staden i dess resultat, och om du skriver Las Vegas på raden Villkor anger du att du bara vill se poster där värdet i fältet Ort är Las Vegas. 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 två följande kolumnerna i frågerutnätet.
-
Klicka på Kör i gruppen Resultat på fliken Frågedesign. Frågan körs och visar sedan 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 vill köra varianter av en viss fråga kan du använda en parameterfråga. När du kör en parameterfråga uppmanas du att ange fältvärden och sedan de värden som du anger för att skapa villkor för frågan.
Om du 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 ort 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 ort (som du skapade i föregående avsnitt) och klickar sedan på Designvy på snabbmenyn.
-
Ta bort Las Vegas på raden Villkor i kolumnen Ort i frågerutnätet och skriv sedan [För vilken stad?].
Strängen [För vilken stad?] är parameterprompten. Hakparenteserna anger att du vill att frågan ska begära indata, och texten (i det här fallet För vilken ort?) är frågan som parameterprompten visar.
Obs!: Varken en punkt (.) eller ett utropstecken (!) kan användas som text i en parameterupprop.
-
Markera kryssrutan på raden Visa i kolumnen Ort så att staden visas i frågeresultatet.
-
Klicka på Kör i gruppen Resultat på fliken Frågedesign. Frågan uppmanar dig att ange ett värde för Ort.
-
Skriv New York och tryck sedan på RETUR för att visa order för kunder i New York.
Vad händer 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?] &"*".
Med nyckelordet Gilla , et-tecken (&) och asterisken (*) inom citattecken kan användaren 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 städer. om användaren skriver L returnerar frågan alla städer som börjar med bokstaven "L;" och om användaren skriver *s*, returnerar frågan alla städer som innehåller bokstaven "s".
-
Klicka på Kör i gruppen Resultat på fliken Frågedesign och skriv Nytt i frågan och tryck på RETUR.
Frågan körs och visar sedan 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:
-
Öppna frågan i designvyn och klicka på Parametrar i gruppen Visa/dölj på fliken Frågedesign.
-
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 be om indata när du kör en fråga.
Skapa en summafråga
Raden Summa i ett datablad är mycket användbar, men för mer komplexa frågor använder du en summafråga. En summafråga är en urvalsfråga som gör att du kan 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 visa total försäljning 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 efter produkt.
-
Klicka på Visa > designvyn på fliken Start.
Frågan Produktdelsummor öppnas i designvyn.
-
Klicka på Summor i gruppen Visa/dölj på fliken Frågedesign.
Raden Summor visas i frågerutnätet.
Obs!: Även om de har liknande namn är raden Summor i designrutnätet och summaraden i ett datablad inte densamma:
-
Du kan gruppera efter fältvärden med hjälp av raden Summor i designrutnätet.
-
Du kan lägga till en summarad i ett datablad i resultatet av 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 visar sedan en lista över produkter med delsummor.
-
Spara frågan genom att trycka på CTRL+S. Låt frågan vara öppen.
Mer information finns i Visa kolumnsummor i ett datablad med hjälp av 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 baseras på ändringar. Du skulle till exempel inte lagra någons ålder i en tabell, eftersom du varje år måste uppdatera värdet. I stället lagrar du personens födelsedatum och använder sedan en fråga för att beräkna personens ålder.
Om du till exempel har en databas för vissa produkter som du vill sälja. Den här databasen har en tabell med namnet Orderinformation 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 produkten, multiplicerar antalet av varje produkt med enhetspriset och rabatten för produkten och subtraherar sedan den totala rabatten från det totala enhetspriset. Om du skapade exempeldatabasen i föregående exempel öppnar du den och följer med:
-
Klicka på Frågedesign på fliken Skapa.
-
Dubbelklicka på Orderinformation på fliken Tabeller.
-
I tabellen Orderdetaljer dubbelklickar du på Produkt-ID 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 visar sedan en lista över produkter och delsummor per order.
-
Tryck på CTRL+S för att spara frågan och namnge sedan frågan Produktdelsummor.
Mer information finns i Visa kolumnsummor i ett datablad med hjälp av en summarad.
Visa summerade eller aggregerade data
När du använder tabeller för att registrera transaktioner eller lagra regelbundet förekommande numeriska data är det bra att kunna granska dessa data aggregerade, till exempel summor eller medelvärden. I Access kan du lägga till en summarad i en datablad. Summarad är en rad längst ned i databladet som kan visa en löpande summa eller annat mängdvärde.
-
Kör frågan Produktdelsummor som du skapade tidigare och låt resultatet vara öppet i Databladsvy.
-
Klicka på Summor på fliken Start. En ny rad visas längst ned i databladet med ordet Summa i den första kolumnen.
-
Klicka på cellen på 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 Summa till antalet kolumnvärden.
-
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 en summa av kolumnvärdena.
-
Låt frågan vara öppen i databladsvyn.
Skapa en korsfråga
Anta nu att du vill granska produktdelsummor, men du vill också aggregera efter månad, så att delsummor för en produkt visas på varje rad, och varje kolumn visar produktdelsummor för en månad. Om du vill visa delsummor för en produkt och visa delsummor för en månad använder du ett korsfråga.
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 Frågekonfiguration.
-
Dubbelklicka på Order och klicka sedan på Stäng.
-
Klicka på Korsfråga i gruppen Frågetyp på fliken Frågedesign. I designrutnätet är raden Visa dold och korstabellraden 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 eller klistrar du in följande : Månad: "Månad " & DatumDel("m", [Orderdatum])
-
Klicka på OK.
-
På raden Korsfråga väljer du följande värden i listrutan: 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 visar sedan 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-beställningar till en affärspartner i Chicago som använder Access för att förbereda rapporter. I stället för att skicka alla orderdata vill du begränsa de data som du skickar till data som är specifika för Chicago-beställningar.
Du kan skapa en urvalsfråga som innehåller orderdata i Chicago 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 klickar du på Aktivera innehåll.Om databasen redan finns på en betrodd plats visas inte 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 fälten i designrutnätet.
-
I tabellen Orderdetaljer dubbelklickar du på Order-ID, Produkt-ID, Antal, Enhetspris och Rabatt för att lägga till fälten i designrutnätet.
-
I kolumnen Leveransort i designrutnätet avmarkerar du rutan på raden Visa . På raden Villkor skriver du "Chicago" (ta med enkla citattecken). Kontrollera frågeresultatet innan du använder dem för att skapa tabellen.
-
Klicka på Kör i gruppen Resultat på fliken Frågedesign.
-
Spara frågan genom att trycka på Ctrl + S.
-
Skriv Chicago Orders Query i rutan Frågenamn och klicka sedan på OK.
-
Klicka på Visa i gruppen Vyer på fliken Start och klicka sedan på Designvy.
-
Klicka på Skapa tabell i gruppen Frågetyp på fliken Frågedesign.
-
Skriv Chicago-order i rutan Tabellnamn i dialogrutan Skapa tabell och klicka sedan på OK.
-
Klicka på Kör i gruppen Resultat på fliken Frågedesign.
-
Klicka på Ja i bekräftelsedialogrutan och visa 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 medarbetaren också 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 Milwaukee-områdesdata i tabellen Chicago Orders med hjälp av följande procedur:
-
Öppna frågan med namnet "Chicago Orders Query" som du skapade tidigare i designvyn.
-
Klicka på Lägg till i gruppen Frågetyp på fliken Frågedesign. Dialogrutan Lägg till öppnas.
-
I dialogrutan Lägg till klickar du på pilen i rutan Tabellnamn , väljer Chicago-order i listrutan och klickar sedan på OK.
-
I designrutnätet, på raden Villkor i kolumnen Leveransort, tar du bort "Chicago" och skriver sedan "Milwaukee".
-
På raden Lägg till till väljer du rätt fält för varje kolumn.
I det här exemplet ska radvärdena Lägg till till matcha radvärdena för Fält , 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 tabellerna 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!: Det går inte att ångra en redigeringsfråga. Du bör överväga att säkerhetskopiera alla tabeller som du kommer att uppdatera med hjälp av en uppdateringsfråga.
I föregående exempel läggs rader till i tabellen Chicago-order. I tabellen Order i Chicago visas det numeriska produkt-ID:t i fältet Produkt-ID. Om du vill göra informationen mer användbar i rapporter kan du ersätta produkt-ID:erna med produktnamn på följande sätt:
-
Öppna tabellen Chicago Orders i designvyn.
-
På raden Produkt-ID ändrar du datatypen från tal till text.
-
Spara och stäng tabellen Chicago Order.
-
På fliken Skapa i gruppen Fråga klickar du på Frågedesign.
-
Dubbelklicka på Order och produkter frånChicago.
-
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.
-
I tabellen Chicago Orders dubbelklickar du på Produkt-ID för att lägga till det här fältet i designrutnätet.
-
I designrutnätet, på raden Uppdatera till i kolumnen Produkt-ID , 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 NULL på raden Uppdatera till .
-
På raden Villkor skriver eller klistrar du in följande: [Produkt-ID] Like ([Products].[ ID])
-
Du kan granska vilka värden som ska ändras av en uppdateringsfråga genom att visa frågan i databladsvyn.
-
Klicka på Visa > databladsvy på fliken Design. Frågan returnerar en lista över produkt-ID:ar 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 tabeller och du kan använda en borttagningsfråga för att ange villkor för att ange vilka rader som ska tas bort. Med en borttagningsfråga kan du granska de rader som ska tas bort innan du utför borttagningen.
Anta till exempel att medan du förberedde dig för att skicka tabellen Chicago-order från föregående exempel, till din affärspartner i Chicago, märker du att vissa av raderna innehåller ett antal tomma fält. Du har bestämt dig för att ta bort de här raderna innan du skickar tabellen. Du kan bara ö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 Orders som inte har något värde för Order-ID med hjälp av följande procedur:
-
Klicka på Frågedesign på fliken Skapa.
-
Dubbelklicka på Chicago-order.
-
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.
-
I tabellen Chicago Order dubbelklickar du på Order-ID för att lägga till det i rutnätet.
-
Skriv Is Null på raden Villkor i kolumnen Order-ID i designrutnätet.
-
Klicka på Kör i gruppen Resultat på fliken Frågedesign.
Mer information om att ta bort frågor finns i Skapa och köra en borttagningsfråga.