När du vill att en fråga i Access ska begära indata varje gång du kör den kan du skapa en parameterfråga.
Du kan också skapa ett formulär för att samla in parametervärden som används för att begränsa antalet poster som returneras för frågor, formulär och rapporter. I den här artikeln förklarar vi hur du använder formulär för att förbättra din användning av parametrar i frågor, formulär och rapporter.
I den här artikeln
Översikt
Du kan använda villkor i en parameterfråga i Access för att begränsa antalet poster som returneras av frågan. Det kan hända att dialogrutorna som tillhandahålls för en parameterfråga är otillräckliga för dina behov. I sådana fall kan du skapa ett formulär som bättre passar dina behov för parameterinsamling. I den här artikeln förklarar vi hur du skapar ett formulär som samlar fråge- och rapportparametrar. I artikeln förutsätter vi att du är van vid att skapa frågor och definiera parametrar i frågor. Du bör minst veta hur du skapar en urvalsfråga innan du fortsätter.
Artikeln innehåller exempel på hur du använder parametrar i frågor. Den innehåller inte en fullständig referens för att ange villkor.
-
Mer information om hur du skapar en urvalsfråga finns i artikeln Skapa en enkel urvalsfråga.
-
Mer information om frågor i allmänhet finns i artikeln Introduktion till frågor.
-
Mer information om hur du definierar parametrar i frågor finns i artikeln Använda parametrar för att begära indata när en fråga körs.
-
Mer information om hur du anger villkor i frågor finns i artikeln Exempel på frågevillkor.
Använda parametrar i frågor
Att använda en parameter i en fråga är lika enkelt som att skapa en fråga med villkor. Du kan utforma en fråga så att den uppmanar dig att ange en viss informationsdel, t.ex ett artikelnummer, eller mer information, till exempel två datum. Varje parameterfråga visar en separat dialogruta för varje parameter, där du uppmanas att ange ett värde för den parametern.
Lägga till en parameter i en fråga
-
Skapa en urvalsfråga och öppna sedan frågan i Designvyn.
-
På raden Villkor för ett fält för vilket du vill att en parameter ska tillämpas, skriver du den text som du vill ska visas i dialogrutan för parametern, inom hakparenteser, till exempel:
[Startdatum]
När du kör parameterfrågan visas uppmaningen i en dialogruta utan hakparenteserna.
Du kan också använda ett uttryck med parameteruppmaningarna, till exempel:
Mellan [Startdatum] Och [Slutdatum]
Obs!: En separat dialogruta visas för varje parameteruppmaning. I det andra exemplet visas två dialogrutor: en för Startdatum och en för Slutdatum.
-
Upprepa steg 2 för varje fält som du vill lägga till parametrar för.
Du kan använda de föregående stegen för att lägga till en parameter i någon av följande typer av frågor: Urvalsfråga, korsfråga, tilläggsfråga, tabellfråga eller uppdateringsfråga.
Du kan också lägga till en parameter i en unionsfråga genom att följa de här stegen:
-
Öppna unionsfrågan i SQL-vyn.
-
Lägg till en WHERE-sats som innehåller alla fält för vilka du vill fråga efter en parameter.
Om det redan finns en WHERE-sats ska du kontrollera om fälten för vilka du vill använda en parameterfråga redan finns i satsen. Annars lägger du till dem.
-
I stället för att använda ett villkor i WHERE-satsen kan du använda en parameteruppmaning.
Ange parameterns datatyper
Du kan också ange vilken typ av data som en parameter ska acceptera. Du kan ange datatypen för alla parametrar, men det är särskilt viktigt att ange datatypen för tal, valuta och 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.
Obs!: Om en parameter konfigurerats 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 Design 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.
Skapa ett formulär som samlar in parametrar
Även om parameterfrågor har en inbyggd dialogruta som samlar in parametrar, ger de endast grundläggande funktioner. Genom att använda ett formulär för att samla in parametrar får du följande funktioner:
-
Möjligheten att använda datatypsspecifika kontroller, till exempel kalenderkontroller för datum.
-
De insamlade parametrarna sparas, så att du kan använda dem med mer än en fråga.
-
Möjligheten att tillhandahålla en kombinationsruta eller listruta för parameterinsamling, där du kan välja från en lista med tillgängliga datavärden.
-
Möjligheten att tillhandahålla kontroller för andra funktioner, till exempel öppna eller uppdatera en fråga.
I följande video visar vi hur du kan skapa ett enkelt formulär för att samla in parametrar för en fråga i stället för att använda dialogrutor som normalt förknippas med parameterfrågor.
Skapa ett formulär som samlar in parametrar för en rapport
Det finns flera sätt att hantera detta scenario, men vi ska visa en metod som i huvudsak använder makron. Följ de här stegen för att skapa ett formulär som samlar in parametrar för en rapport.
Steg 1: Skapa ett formulär som accepterar inmatning
-
På fliken Skapa i gruppen Formulär klickar du på Formulärdesign.
-
Tryck på F4 i designvyn för att visa egenskapssidan och ange sedan egenskaper för formuläret enligt tabellen nedan.
Egenskap
Inställning
Titel
Ange det namn som du vill ska visas i namnlisten i formuläret.
Standardvy
Enstaka formulär
Tillåt formulär
Ja
Tillåt datablad
Nej
Tillåt pivottabell
Nej
Tillåt pivotdiagram
Nej
Rullningslister
Inget av dem
Postväljare
Nej
Navigeringsknappar
Nej
Kantlinjeformat
Dialogruta
-
För varje parameter som du vill att formuläret ska samla in klickar du på Textruta i gruppen Kontroller på fliken Design.
-
Ange egenskaper för textrutorna, som visas i följande tabell.
Egenskap
Inställning
Namn
Ange ett namn som beskriver parametern, till exempel Startdatum.
Format
Välj ett format som avspeglar parameterfältets datatyp. Välj exempelvis Allmänt datum för ett datumfält.
-
Spara formuläret och ge det ett namn, till exempel frmVillkor.
Steg 2: Skapa en kodmodul för att kontrollera om parameterformuläret redan har lästs in
-
Klicka på Modul i gruppen Makron och kod på fliken Skapa.
En ny modul öppnas i Visual Basic Editor.
-
Skriv eller klistra in följande kod i Visual Basic Editor:
Function IsLoaded(ByVal strFormName As String) As Boolean Dim oAccessObject As AccessObject Set oAccessObject = CurrentProject.AllForms(strFormName) If oAccessObject.IsLoaded Then If oAccessObject.CurrentView <> acCurViewDesign Then IsLoaded = True End If End If End Function
-
Spara modulen med ett unikt namn och stäng sedan Visual Basic Editor.
Steg 3: Skapa ett makro som styr formuläret och rapporten
Med hjälp av funktionerna för undermakron i Access kan vi definiera alla nödvändiga steg vi behöver göra i ett enda makro. Vi kommer att skapa fyra undermakron – Öppna dialogruta, Stäng dialogruta, OK och Avbryt – för att styra olika uppgifter som behövs för den här proceduren. Använd skärmbilden nedan som en guide och skapa ett nytt makro med följande undermakron och åtgärder. Observera att parameterformuläret kallas frmVillkor i det här exemplet. Justera makrot så att det matchar namnet på det formulär som du skapade tidigare. Du måste även se till att klicka på Visa alla åtgärder på fliken Design om du ska kunna visa alla makroåtgärder.
Spara och stäng makrot. Ge makrot ett namn, till exempel Makro för datumintervall.
Steg 4: Lägga till kommandoknapparna OK och Avbryt i formuläret
-
Öppna parameterformuläret som du skapade tidigare i designvyn.
-
Kontrollera att Använd kontrollguider i gruppen Kontroller på fliken Design inte är markerat.
-
Klicka på Knapp i gruppen Kontroller på fliken Design.
-
Placera pekaren under textrutorna i formuläret och dra sedan för att skapa kommandoknappen OK.
-
Om egenskapssidan inte visas trycker du på F4 så att den öppnas.
-
Ange egenskaper för knappen OK, som visas i följande tabell.
Egenskap
Inställning
Namn
OK
Titel
OK
Standard
Ja
VidKlickning
Ange namnet på makrot, till exempel Makro för datumintervall.OK.
-
Skapa kommandoknappen Avbryt och ange dess egenskaper, som visas i följande tabell.
Egenskap
Inställning
Namn
Avbryt
Titel
Avbryt
VidKlickning
Ange namnet på makrot, till exempel Makro för datumintervall.Avbryt.
-
Spara och stäng formuläret.
Steg 5: Använda formulärdata som frågevillkor
-
Öppna frågan som du skapade tidigare i designvyn.
-
Ange villkor för data. Använd objektet Formulär, namnet på formuläret och namnet på din kontroll:
-
I en Access-databas (.accdb eller .mdb) använder du till exempel följande uttryck för att referera till kontroller med namnen Startdatum och Slutdatum i frågan för ett formulär med namnet frmVillkor:
Mellan [Formulär]![frmVillkor]![Startdatum] Och [Formulär]![frmVillkor]![Slutdatum]
-
Steg 6: Lägga till makroåtgärder i rapporthändelser
-
Öppna den rapport som du vill använda i designvyn.
-
Om egenskapssidan inte visas trycker du på F4 så att den öppnas.
-
Kontrollera att egenskapen Datakälla för rapporten använder parameterfrågan som du definierade tidigare.
-
Ange dessa två ytterligare rapportegenskaper, som visas i följande tabell.
Egenskap
Inställning
VidÖppning
Ange namnet på makrot, till exempel Makro för datumintervall.Öppna dialogruta.
VidStängning
Ange namnet på makrot, till exempel Makro för datumintervall.Stäng dialogruta.
I rapportens Öppna-händelse kör Access åtgärderna som definierats i undermakrot Öppna dialogruta för objektet Makro för datumintervall. Och på samma sätt kör Access åtgärderna som definierats i undermakrot Stäng dialogruta i objektet Makro för datumintervall när du stänger rapporten.
-
Spara och stäng rapporten.
Steg 7: Testa själv
Nu när du har skapat alla Access-objekten är det dags att prova. Öppna rapporten i Rapportvy eller Förhandsgranska och lägg märke till att parameterformuläret öppnas i dialogruteläge innan rapporten visas i Access. Ange nödvändiga villkor i textrutorna som du skapade tidigare och klicka sedan på kommandoknappen OK i formuläret. Då döljs formuläret i Access (Synligt = Nej) och rapporten öppnas med endast de data som matchar villkoren. Detta fungerar eftersom parameterfrågan som rapporten baseras på kan läsa värdena i kontrollerna i det dolda formuläret. När du stänger rapporten stängs även parameterformuläret i Access.