I del 2 av den här serien har vi övervägt att använda LIKE och jokertecken i frågevillkor för att hitta matchningar som inte används. Bra saker – men vad händer om du kan få frågan att tillämpa villkor som anges när den körs? Vad händer om du kan få en fråga att be om indata? Goda nyheter! Du kan få en fråga att be om indata, och det är faktiskt mycket enkelt.
Allt du gör är att använda en fråga inom hakparenteser i stället för ett normalt kriterium. När någon kör frågan är det första den gör att presentera en dialogruta som visar frågan du använde. Låt oss ta en titt på utformningen av frågan som producerade kundens efternamn? dialogruta.
Frågan returnerar alla data från tabellen Kunder, men bara de poster där Efternamn matchar användarens svar på detta:
Det gör att jobbet blir gjort, men det finns saker du kan göra för att förbättra frågans användbarhet. För det första kan du deklarera dina parametrar så att Access ger ett förnuftigt felmeddelande om någon matar in fel typ av data (till exempel om någon anger text när ett tal krävs).
Så här deklarerar du en parameter:
-
Öppna frågan i designvyn och kopiera parameterfrågan till Urklipp, inklusive hakparenteserna (markera parameterfrågan och tryck på Ctrl+C).
-
I Frågeverktyg | Fliken Design i gruppen Visa/dölj klickar du på Parametrar.
-
I dialogrutan Frågeparametrar klistrar du in den kopierade parametern i kolumnen Parameter och anger sedan datatypen i listrutan i kolumnen Datatyp .
Om du verkligen vill gå all-out kan du använda ett formulär för att samla indata. Ett formulär öppnar upp alla möjliga möjligheter, till exempel att dela indataparametrar mellan en uppsättning frågor eller att tillhandahålla en datumväljare för att ange en datum-/tidsparameter. Mer information finns i Använda parametrar i frågor, formulär och rapporter.