Kritéria dotazu umožňují zaměřit pozornost na určité položky v databázi Accessu. Když položka vyhovuje všem zadaným kritériím, objeví se ve výsledcích dotazu.
Pokud chcete přidat kritéria do dotazu aplikace Access, otevřete dotaz v návrhovém zobrazení a identifikujte pole (sloupce), pro která chcete kritéria zadat. Jestliže pole není v návrhové mřížce, dvakrát na něj klikněte, abyste ho do mřížky přidali. Pak pro toto pole vložte kritérium do řady Kritéria. Pokud si nejste jistí, jak to udělat, přečtěte si článek Úvod k dotazům.
Kritérium dotazu je výraz, který Access porovná s hodnotami pole dotazu a určí, jestli zahrnout záznam obsahující každou hodnotu. Například = "Ostrava" je výraz, který Access může porovnat s hodnotami v textovém poli dotazu. Pokud je hodnota tohoto pole v daném záznamu "Ostrava", Access zahrne záznam do výsledků dotazu.
Dále uvádíme několik příkladů běžně používaných kritérií, která použijte jako výchozí bod při tvorbě vlastních kritérií. Příklady jsou uspořádány podle datových typů.
V tomto tématu
Úvod ke kritériím dotazu
Kritérium se podobá vzorci – jedná se o řetězec, který může obsahovat odkazy na pole, operátory a konstanty. Kritéria dotazu se v aplikaci Access označují taky jako výrazy.
Následující tabulky obsahují několik ukázkových kritérií s vysvětlením toho, jak fungují.
Kritérium |
Popis |
---|---|
>25 and <50 |
Toto kritérium se dá použít u pole typu Číslo, jako je třeba pole Cena nebo JednotkyNaSkladě. Zahrnuje jenom záznamy, ve kterých pole Cena nebo JednotkyNaSkladě obsahuje hodnotu větší než 25 a menší než 50. |
DateDiff ("rrrr", [DatumNarození], Date()) > 30 |
Toto kritérium se dá použít u pole typu Datum a čas, jako je třeba pole DatumNarození. Do výsledku dotazu se zahrnou jenom záznamy, ve kterých je počet roků mezi datem narození dané osoby a aktuálním datem větší než 30. |
Is Null |
Toto kritérium se dá použít u všech typů polí k zobrazení záznamů s hodnotou pole Null. |
Jak je vidět, kritéria můžou v závislosti na datovém typu pole, u kterého se použijí, a na konkrétních požadavcích vypadat různě. Některá kritéria jsou jednoduchá a používají se v nich základní operátory a konstanty. Jiná jsou složitá a používají funkce, speciální operátory a obsahují odkazy na pole.
Toto téma obsahuje několik běžně používaných kritérií podle typu dat. Pokud žádný z příkladů v tomto tématu nevyhovuje vašim konkrétním potřebám, budete si muset vytvořit vlastní kritéria. Než to uděláte, seznamte se s úplným seznamem funkcí, operátorů a speciálních znaků a se syntaxí výrazů obsahujících odkazy na pole a literály.
Najdete tady informace o tom, jak a kde můžete kritéria přidávat. Pokud chcete přidat kritérium do dotazu, otevřete dotaz v návrhovém zobrazení. Potom určete pole, pro která chcete zadat kritéria. Pokud se dané pole v návrhové mřížce ještě nenachází, je potřeba ho přidat přetažením z okna návrhu dotazu do mřížky pole nebo poklikáním na pole (po poklikání na pole se toto pole automaticky přidá do dalšího prázdného sloupce v mřížce pole). Nakonec zadejte kritéria do řádku Kritéria.
Kritéria zadaná do řádku Kritéria pro různá pole jsou spojená pomocí operátoru AND. To znamená, že kritéria zadaná do polí Město a DatumNarození se interpretují takto:
Město = "Ostrava" AND DatumNarození < DateAdd (" rrrr ", -40, Date())
1. Pole Město a DatumNarození obsahují kritéria.
2. Jenom záznamy s hodnotou Ostrava v poli Město odpovídají tomuto kritériu.
3. Jenom záznamy osob, které mají minimálně 40 let, odpovídají tomuto kritériu.
4. Ve výsledku se zahrnou jenom záznamy, které splňují obě kritéria.
Jak postupovat, když chcete, aby se splnila jenom jedna z těchto podmínek? Jinými slovy, jak zadat jiná kritéria?
Pokud chcete zadat jiná kritéria nebo dvě sady nezávislých kritérií a stačí, aby se splnila jenom jedna sada kritérií, použijte v návrhové mřížce řádek Kritéria a řádek Nebo.
1. Na řádku Kritéria je zadané kritérium Město.
2. Na řádku Nebo je zadané kritérium DatumNarození.
Kritéria zadaná na řádku Kritéria a Nebo se zpracují použitím operátoru OR takto:
Město = "Ostrava" OR DatumNarození < DateAdd("rrrr", -40, Date())
Pokud potřebujete zadat další alternativy, použijte řádky pod řádkem Nebo.
Než budete pokračovat s příklady, uvědomte si toto:
-
Pokud jsou kritéria dočasná nebo se často mění, můžete místo častých změn kritérií dotazu filtrovat výsledky dotazu. Filtr je dočasné kritérium, které změní výsledek dotazu, bez toho, že by se musel změnit návrh dotazu. Další informace o filtrech najdete v článku Použití filtru k zobrazení vybraných záznamů v databázi aplikace Access.
-
Pokud se pole kritérií nemění, zato se často mění hodnoty, které vás zajímají, můžete vytvořit parametrický dotaz. Parametrický dotaz vyzve uživatele k zadání hodnot polí a potom pomocí těchto hodnot vytvoří kritéria dotazu. Další informace o parametrických dotazech najdete v článku Použití parametrů v dotazech a sestavách.
Kritéria pro pole typu Text, Memo a Hypertextový odkaz
Následující příklady jsou určené pro pole Země v dotazu založeném na tabulce s kontaktními informacemi. Kritérium je zadané v řádku Kritéria pro pole v návrhové mřížce.
Kritérium zadané pro pole Hypertextový odkaz se ve výchozím nastavení použije u zobrazené části textu hodnoty pole. Pokud chcete zadat kritéria pro část hodnoty cílové adresy URL (Uniform Resource Locator), použijte výraz HyperlinkPart. Syntaxe tohoto výrazu je následující: HyperlinkPart([Tabulka1].[Pole1],1) = "http://www.microsoft.com/", kde Tabulka1 je název tabulky obsahující pole hypertextového odkazu, Pole1 je pole hypertextového odkazu a http://www.microsoft.com je adresa URL, kterou chcete použít.
Pokud chcete zahrnout záznamy, které... |
Použijte kritérium |
Výsledek dotazu |
---|---|---|
Přesně odpovídají určité hodnotě, například Čína. |
"Čína" |
Vrátí záznamy, ve kterých je v poli Země nastavená hodnota Čína. |
Neodpovídají určité hodnotě, například Mexiko. |
Not "Mexiko" |
Vrátí záznamy, ve kterých je v poli Země nastavená jiná hodnota než Mexiko. |
Začínají určitým řetězcem, například „K“. |
Like K* |
Vrátí záznamy pro všechny země nebo oblasti, jejichž názvy začínají písmenem „K“, třeba Kanada, Kolumbie atd. Poznámka: Pokud se hvězdička (*) použije ve výrazu, zastupuje jakýkoli řetězec znaků – patří mezi zástupné znaky. Seznam zástupných znaků najdete ve článku Zástupné znaky v aplikaci Access. |
Nezačínají určitým řetězcem, například „K“. |
Not Like K* |
Vrátí záznamy pro všechny země nebo oblasti, jejichž názvy začínají jiným písmenem než „K“. |
Obsahují určitý řetězec, například „Korea“. |
Like "*Korea*" |
Vrátí záznamy pro všechny země nebo oblasti, v jejichž názvu je řetězec „Korea“. |
Neobsahují určitý řetězec, například „Korea“. |
Not Like "*Korea*" |
Vrátí záznamy pro všechny země nebo oblasti, v jejichž názvu není řetězec „Korea“. |
Končí určitým řetězcem, například „ina“. |
Like "*ina" |
Vrátí záznamy pro všechny země nebo oblasti, jejichž název končí řetězcem „ina“, například Argentina. |
Nekončí určitým řetězcem, například „ina“. |
Not Like "*ina" |
Vrátí záznamy pro všechny země nebo oblasti, jejichž název nekončí řetězcem „ina“, například Argentina. |
Obsahují hodnotu Null (nebo chybějící hodnotu). |
Is Null |
Vrátí záznamy, které neobsahují v daném poli žádnou hodnotu. |
Neobsahují hodnotu Null. |
Is Not Null |
Vrátí záznamy, které mají v daném poli nějakou hodnotu. |
Obsahují řetězce nulové délky. |
"" (dvojice uvozovek) |
Vrátí záznamy, které mají v příslušném poli nastavenou prázdnou hodnotu (ale ne hodnotu Null). Například záznamy o prodeji v jiném oddělení můžou obsahovat v poli Země prázdnou hodnotu. |
Neobsahují řetězce nulové délky. |
Not "" |
Vrátí záznamy, které mají v poli Země neprázdnou hodnotu. |
Obsahuje hodnoty Null nebo řetězce s nulovou délkou. |
"" Or Is Null |
Vrátí záznamy, které neobsahují žádnou hodnotu nebo je pole nastavené na prázdnou hodnotu. |
Není prázdné nebo nezadané. |
Is Not Null And Not "" |
Vrátí záznamy, které mají v poli Země neprázdnou hodnotu jinou než hodnotu Null. |
Následují v abecedním pořadí po určité hodnotě, například Mexiko. |
>= "Mexiko" |
Vrátí záznamy pro všechny země nebo oblasti, od Mexika až do konce abecedy. |
Spadají do určitého rozsahu, například A až D. |
Like "[A-D]*" |
Vrátí záznamy pro všechny země nebo oblasti, jejichž název začíná písmeny A až D. |
Odpovídají jedné ze dvou hodnot, například USA nebo Kanada. |
"USA" Or "Kanada" |
Vrátí záznamy pro USA a Kanadu. |
Obsahují některou z hodnot v seznamu hodnot. |
In("Francie", "Čína", "Německo", "Japonsko") |
Vrátí záznamy pro všechny země nebo oblasti uvedené v seznamu. |
Obsahují na určitém místě hodnoty daného pole určité znaky. |
Right([Země], 1) = "y" |
Vrátí záznamy pro všechny země nebo oblasti, jejichž poslední písmeno je „y“. |
Splňují požadavek na počet znaků. |
Len([Země]) > 10 |
Vrátí záznamy pro všechny země nebo oblasti, jejichž název je delší než 10 znaků. |
Odpovídají určitému vzorku. |
Like "K???" |
Vrátí záznamy pro všechny země nebo oblasti, jejichž název má 4 znaky a začíná na „K“, například Kuba nebo Kypr. Poznámka: Znaky ? a _ použité ve výrazu představují jeden znak – označují se taky jako zástupné znaky. Znak _ se nedá použít ve stejném výrazu se znakem ?, ani ho nemůžete použít ve výrazu spolu se zástupným znakem *. Zástupný znak _ můžete použít ve výrazu, který obsahuje i zástupný znak %. |
Kritéria pro pole typu Číslo, Měna a Automatické číslo
Následující příklady jsou určené pro pole JednotkováCena v dotazu založeném na tabulce s informacemi o výrobcích. Kritérium je zadané v řádku Kritéria pro pole v návrhové mřížce dotazu.
Pokud chcete zahrnout záznamy, které... |
Použijte kritérium |
Výsledek dotazu |
---|---|---|
Přesně odpovídají určité hodnotě, například 100. |
100 |
Vrátí záznamy, ve kterých je jednotková cena výrobku 100 Kč. |
Neodpovídají určité hodnotě, například 1 000 |
Not 1000 |
Vrátí záznamy, ve kterých není jednotková cena výrobku 1000 Kč. |
Obsahují hodnotu menší než určitá hodnota, například 100. |
< 100 <= 100 |
Vrátí záznamy, ve který je jednotková cena menší než 100 Kč (<100). Druhý výraz (<=100) zobrazí záznamy s jednotkovou cenou menší nebo rovnou 100 Kč. |
Obsahují hodnotu větší než určitá hodnota, například 99,99. |
>99,99 >=99,99 |
Vrátí záznamy, ve který je jednotková cena větší než 99,99 Kč (<99,99). Druhý výraz zobrazí záznamy s jednotkovou cenou větší nebo rovnou 99,99 Kč. |
Obsahují jednu ze dvou hodnot, například 20 nebo 25. |
20 or 25 |
Vrátí záznamy, ve kterých je jednotková cena 20 Kč nebo 25 Kč. |
Obsahují hodnotu v určitém rozsahu hodnot. |
>49,99 a <99,99 -Nebo- Mezi 50 a 100 |
Vrátí záznamy, ve kterých je jednotková cena mezi (ale ne včetně) 49,99 Kč a 99,99 Kč. |
Obsahují hodnotu mimo určitý rozsah. |
<50 or >100 |
Vrátí záznamy, ve kterých jednotková cena není mezi 50 Kč a 100 Kč. |
Obsahují některou z více určitých hodnot. |
In(20, 25, 30) |
Vrátí záznamy, ve kterých je jednotková cena 20 Kč, 25 Kč nebo 30 Kč. |
Obsahují hodnotu končící určitými číslicemi. |
Like "*4,99" |
Vrátí záznamy, ve kterých jednotková cena končí znaky 4,99, například 4,99 Kč, 14,99 Kč, 24,99 Kč atd. Poznámka: Znaky * a % použité ve výrazu představují jakýkoli počet znaků – označují se taky jako zástupné znaky. Znak % se nedá použít ve stejném výrazu se znakem *, ani ho nemůžete použít ve výrazu spolu se zástupným znakem ?. Zástupný znak % můžete použít ve výrazu, který obsahuje i zástupný znak _. |
Obsahují hodnotu Null (nebo chybějící hodnotu). |
Is Null |
Vrátí záznamy, které nemají v poli JednotkováCena zadanou žádnou hodnotu. |
Obsahují jinou hodnotu než Null. |
Is Not Null |
Vrátí záznamy, které mají v poli JednotkováCena zadanou nějakou hodnotu. |
Kritéria pro pole typu Datum a čas
Následující příklady jsou určené pro pole DatumObjednávky v dotazu založeném na tabulce s informacemi o objednávkách. Kritérium je zadané v řádku Kritéria pro pole v návrhové mřížce dotazu.
Pokud chcete zahrnout záznamy, které... |
Použijte kritérium |
Výsledek dotazu |
---|---|---|
Přesně odpovídají určité hodnotě, například 2.2.2006. |
#2.2.2006# |
Vrátí záznamy transakcí, které proběhly 2. února 2006. Nezapomeňte hodnoty data vložit mezi znaky #, aby bylo zřejmé, že jde o hodnotu kalendářního data a nikoli textový řetězec. |
Neodpovídají určité hodnotě, například 2.2.2006 |
Not #2.2.2006# |
Vrátí záznamy transakcí, které proběhly jiný den než 2. února 2006. |
Obsahují hodnoty před určitým datem, například 2.2.2006. |
< #2.2.2006# |
Vrátí záznamy transakcí, které proběhly před 2. únorem 2006. Pokud chcete zobrazit transakce provedené tento den nebo před ním, použijte operátor <= místo operátoru <. |
Obsahují hodnoty po určitém datu, například 2.2.2006. |
> #2.2.2006# |
Vrátí záznamy transakcí, které proběhly po 2. únoru 2006. Pokud chcete zobrazit transakce provedené tento den nebo po něm, použijte operátor >= místo operátoru >. |
Obsahují hodnoty v určitém rozsahu kalendářních dat. |
>#2.2.2006# and <#4.2.2006# |
Vrátí záznamy, ve kterých transakce proběhly mezi 2. únorem 2006 a 4. únorem 2006. Pokud chcete filtrovat rozsah hodnot včetně koncových bodů, můžete použít operátor Between. Například kritérium Between #2.2.2006# and #4.2.2006# vrátí stejné položky jako kritérium >=#2.2.2006# and <=#4.2.2006#. |
Obsahují hodnoty, které leží mimo určitý rozsah kalendářních dat. |
<#2.2.2006# or >#4.2.2006# |
Vrátí záznamy, ve kterých transakce proběhly před 2. únorem 2006 nebo po 4. únoru 2006. |
Obsahují některou ze dvou hodnot, například 2.2.2006 nebo 3.2.2006. |
#2.2.2006# or #3.2.2006# |
Vrátí záznamy transakcí, které proběhly 2. února 2006 nebo 3. února 2006. |
Obsahují některou z více hodnot. |
In (#1.2.2006#, #1.3.2006#, #1.4.2006#) |
Vrátí záznamy, ve kterých transakce proběhly 1. února 2006, 1. března 2006 nebo 1. dubna 2006. |
Obsahují datum v určitém měsíci (bez ohledu na rok), například v prosinci. |
DatePart("m"; [DatumProdeje]) = 12 |
Vrátí záznamy, ve kterých transakce proběhly v prosinci jakéhokoli roku. |
Obsahují datum v určitém čtvrtletí (bez ohledu na rok), například v prvním čtvrtletí. |
DatePart("q"; [DatumProdeje]) = 1 |
Vrátí záznamy, ve kterých transakce proběhly v prvním čtvrtletí jakéhokoli roku. |
Obsahují dnešní datum. |
Date() |
Vrátí záznamy transakcí s aktuálním datem. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy, ve kterých je v poli DatumObjednávky nastavená hodnota 2. února 2006. |
Obsahují včerejší datum. |
Date()-1 |
Vrátí záznamy transakcí, které proběhly den před aktuálním datem. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy s datem 1. února 2006. |
Obsahují zítřejší datum. |
Date() + 1 |
Vrátí záznamy transakcí, které proběhly den po aktuálním datu. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy s datem 3. února 2006. |
Obsahují datum v aktuálním týdnu. |
DatePart("ww"; [DatumProdeje]) = DatePart("ww"; Date()) and Year([DatumProdeje]) = Year(Date()) |
Vrátí záznamy transakcí, které proběhly v aktuálním týdnu. Týden začíná v pondělí a končí v neděli. |
Obsahují data v předchozím týdnu. |
Year([DatumProdeje])* 53 + DatePart("ww"; [DatumProdeje]) = Year(Date())* 53 + DatePart("ww"; Date()) - 1 |
Vrátí záznamy transakcí, které proběhly během minulého týdne. Týden začíná v pondělí a končí v neděli. |
Obsahují data v příštím týdnu. |
Year([DatumProdeje])* 53+DatePart("ww"; [DatumProdeje]) = Year(Date())* 53+DatePart("ww"; Date()) + 1 |
Vrátí záznamy transakcí, které proběhnou příští týden. Týden začíná v pondělí a končí v neděli. |
Obsahují datum spadající do posledních sedmi dnů. |
Between Date() and Date()-6 |
Vrátí záznamy transakcí, které proběhly během minulých sedmi dnů. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy pro období od 24. ledna 2006 do 2. února 2006. |
Obsahují datum v aktuálním měsíci. |
Year([DatumProdeje]) = Year(Now()) And Month([DatumProdeje]) = Month(Now()) |
Vrátí záznamy pro aktuální měsíc. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy pro únor 2006. |
Obsahují datum v minulém měsíci. |
Year([DatumProdeje])* 12 + DatePart("m"; [DatumProdeje]) = Year(Date())* 12 + DatePart("m"; Date()) - 1 |
Vrátí záznamy pro předchozí měsíc. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy pro leden 2006. |
Obsahují datum v následujícím měsíci. |
Year([DatumProdeje])* 12 + DatePart("m"; [DatumProdeje]) = Year(Date())* 12 + DatePart("m"; Date()) + 1 |
Vrátí záznamy pro následující měsíc. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy pro březen 2006. |
Obsahují datum spadající do posledních 30 nebo 31 dnů. |
Between Date( ) And DateAdd("M"; -1; Date( )) |
Vrátí záznamy o prodeji za poslední měsíc. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy pro období od 2. ledna 2006 do 2. února 2006 |
Obsahují datum v aktuálním čtvrtletí. |
Year([DatumProdeje]) = Year(Now()) And DatePart("q"; Date()) = DatePart("q"; Now()) |
Vrátí záznamy pro aktuální čtvrtletí. Pokud by dnešní datum bylo 2.2.2006, vrátil by dotaz záznamy s datem z prvního čtvrtletí 2006. |
Obsahují datum v minulém čtvrtletí. |
Year([DatumProdeje])*4+DatePart("q";[DatumProdeje]) = Year(Date())*4+DatePart("q";Date())- 1 |
Vrátí záznamy pro předchozí čtvrtletí. Pokud by dnešní datum bylo 2.2.2006, vrátil by dotaz záznamy pro poslední čtvrtletí roku 2005. |
Obsahují datum v příštím čtvrtletí. |
Year([DatumProdeje])*4+DatePart("q";[DatumProdeje]) = Year(Date())*4+DatePart("q";Date())+1 |
Vrátí záznamy pro příští čtvrtletí. Pokud by dnešní datum bylo 2.2.2006, vrátil by dotaz záznamy pro druhé čtvrtletí roku 2006. |
Obsahují datum v aktuálním roce. |
Year([DatumProdeje]) = Year(Date()) |
Vrátí záznamy pro aktuální rok. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy pro rok 2006. |
Obsahují datum v minulém roce. |
Year([DatumProdeje]) = Year(Date()) - 1 |
Vrátí záznamy transakcí, které proběhly během loňského roku. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy pro rok 2005. |
Obsahují datum v následujícím roce. |
Year([DatumProdeje]) = Year(Date()) + 1 |
Vrátí záznamy transakcí s datem v následujícím roce. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy pro rok 2007. |
Obsahují datum v období od 1. ledna do dnešního dne (záznamy od začátku roku do teď). |
Year([DatumProdeje]) = Year(Date()) and Month([DatumProdeje]) <= Month(Date()) and Day([DatumProdeje]) <= Day (Date()) |
Vrátí záznamy transakcí s datem v období od 1. ledna aktuálního roku do aktuálního data. Pokud je aktuální datum 2.2.2006, zobrazí se záznamy pro období od 1. ledna 2006 do 2. února 2006. |
Obsahují datum v minulosti. |
< Date() |
Vrátí záznamy transakcí, které proběhly před dnešním dnem. |
Obsahují datum v budoucnosti. |
> Date() |
Vrátí záznamy transakcí, které proběhnou po dnešním dnu. |
Obsahují Null (neobsahují žádnou hodnotu). |
Is Null |
Vrátí záznamy, ve kterých chybí datum transakce. |
Obsahují jakoukoli hodnotu (ne Null). |
Is Not Null |
Vrátí záznamy, ve kterých je datum transakce známé. |
Kritéria pro pole typu Ano/Ne
Příklad: Tabulka Zákazníci obsahuje pole typu Ano/Ne s názvem Aktivní, které určuje, jestli je účet zákazníka momentálně aktivní. Tabulka, která následuje, ukazuje, jak se vyhodnotí hodnoty zadané v řádku Kritéria pro pole typu Ano/Ne.
Hodnota pole |
Výsledek |
---|---|
Ano, Pravda, 1 nebo -1 |
Testované pro hodnotu Ano. Když zadáte hodnotu 1 nebo -1, převede se v řádku Kritéria na Pravda. |
Ne, Nepravda nebo 0 |
Testované pro hodnotu Ne. Když zadáte hodnotu 0, převede se v řádku Kritéria na Nepravda. |
Žádná hodnota (Null) |
Nebylo testované. |
Libovolné číslo jiné než 1, -1 nebo 0 |
Když jde o jedinou hodnotu kritérií v poli, nezobrazí se žádné výsledky. |
Libovolný řetězec znaků jiný než Ano, Ne, Pravda nebo Nepravda |
Dotaz nepůjde spustit kvůli neshodným datovým typům. |
Kritéria pro jiná pole
Přílohy: Pokud chcete zahrnout záznamy, které neobsahují žádné přílohy, zadejte do řádku Kritéria hodnotu Is Null. Pokud chcete zahrnout záznamy s přílohami, zadejte hodnotu Is Not Null.
Vyhledávací pole: Existují dva typy vyhledávacích polí: pole, která vyhledávají hodnoty v existujícím zdroji dat (pomocí cizího klíče), a pole, která jsou založená na seznamu hodnot zadaných při vytváření vyhledávacího pole.
Vyhledávací pole založená na seznamu zadaných hodnot jsou pole s datovým typem Text a platná kritéria jsou shodná s ostatními textovými poli.
Kritéria, která můžete použít u vyhledávacích polí založených na hodnotách ze stávajícího zdroje dat, závisí na datovém typu cizího klíče a nikoli na datovém typu vyhledávaných dat. Třeba vyhledávací pole, které zobrazí jméno zaměstnance, může používat cizí klíč s datovým typem Číslo. Toto pole obsahuje číslo a ne text, a proto použijte kritéria určená pro čísla, třeba >2.
Pokud neznáte datový typ cizího klíče, můžete datové typy polí určit kontrolou zdrojové tabulky v návrhovém zobrazení. Uděláte to takto:
-
Vyhledejte zdrojovou tabulku v navigačním podokně.
-
Tabulku otevřete v návrhovém zobrazení některým z těchto způsobů:
-
Kliknutím na tabulku a stisknutím kláves CTRL + ENTER.
-
Kliknutím na tabulku pravým tlačítkem myši a kliknutím na Návrhové zobrazení.
-
-
Typ dat pro jednotlivá pole je uvedený ve sloupci Datový typ návrhové mřížky tabulky.
Pole s více hodnotami: Data v poli s více hodnotami jsou uložená jako řádky ve skryté tabulce, kterou Access vytvoří a naplní, aby představovala pole. V návrhovém zobrazení dotazu je pole s více hodnotami v seznamu polí zobrazené pomocí rozbalitelného pole. Pokud chcete u pole s více hodnotami použít kritéria, zadejte kritéria pro jednotlivé řádky ve skryté tabulce. Uděláte to takto:
-
Vytvořte dotaz obsahující vícehodnotové pole a otevřete ho v návrhovém zobrazení.
-
Rozbalte pole s více hodnotami kliknutím na symbol plus (+) vedle tohoto pole. Pokud už pole rozbalené je, zobrazuje se symbol minus (-). Pod názvem pole se zobrazí pole představující jednu hodnotu pole s více hodnotami. Toto pole bude mít stejný název jako pole s více hodnotami, doplněné řetězcem .Hodnota.
-
Přetáhněte pole s více hodnotami a pole s jednou hodnotou do samostatných sloupců v návrhové mřížce. Pokud chcete ve výsledcích zobrazit jenom celé pole s více hodnotami, zrušte zaškrtnutí políčka Zobrazit pro pole s jednou hodnotou.
-
Zadejte kritéria do řádku Kritéria pro pole s jednou hodnotou. Použijte kritéria odpovídající datovému typu dané hodnoty.
-
Jednotlivé hodnoty v poli s více hodnotami se vyhodnotí samostatně pomocí zadaných kritérií. Můžete mít třeba pole s více hodnotami, které obsahuje seznam čísel. Pokud zadáte kritérium >5 AND <3, vrátí se všechny záznamy, ve kterých je aspoň jedna hodnota větší než 5 a jedna hodnota menší než 3.