Tvorba dotazu

1.  Určení požadovaných polí
2.  Nastavení vlastností polí
3.  Zadání výběrových kritérií
3.1  Operátor AND versus OR
3.2  Klauzule BETWEEN, IN a LIKE
3.3  Definování aritmetických výrazů
3.4  Použití Tvůrce výrazů

K procvičování této kapitoly doporučujeme si stáhnout tzv. cvičná data z tohoto zdroje. Pokud budete pracovat podle níže uvedených vzorů, pak vaše výsledky by se měly shodovat s těmito předlohami a vy budete mít jistotu, že dotaz máte zapsán správně!


1.  Určení požadovaných polí dotazu

Prvním krokem při vytváření dotazů je výběr polí, která chceme mít v dotazu. Toto můžeme učinit několika způsoby:

  • za použití klávesnice – se můžeme v návrhové mřížce pomocí tabulátoru přesunout na nějaký dostupný sloupec a stiskem kláves Alt – šipka dolů otevřít seznam dostupných polí
  • pomocí myši – přetažením ze seznamu polí v horní části okna do jednoho ze sloupců v návrhové mřížce
  • pomocí myši – 2x kliknout na pole v seznamu polí v horní části okna do jednoho ze sloupců v návrhové mřížce

V každém seznamu polí v horní části okna Dotaz je nahoře symbol hvězdičky (*). Ten je označením pro všechna pole v této tabulce nebo dotazu. Chceme-li tedy při výběru požadovaných polí vybrat právě všechna pole, pak toto je to správné místo. Většinou toto ale nepotřebujeme, neboť chceme vybrat a  vybíráme si konkrétní  pole (jak je ukázáno na níže uvedeném obrázku).

navrh_dotaz_s

A takto to vypadá v prostředí MS Access 2010:

navrh_dotaz_1

Výsledné určení požadovaných polí dotazu v prostředí MS Access 2010:

navrh_dotaz_2

2.  Nastavení vlastností polí

Pole, která jsou výstupem dotazu, obecně dědí vlastnosti, které jsou pro tato pole definovány v tabulce. Definovat však můžeme (chceme-li) jinou vlastnost podle nabídky „Vlastnost pole“.  Pro nastavení vlastností klikneme pravým tlačítkem myší na libovolný řádek ve sloupci daného pole v návrhové mřížce a z nabídky vybereme možnost „Vlastnosti…“ .

vlastnosti_pole

Definovat můžeme jinou vlastnost, jak je patrné z výše uvedeného obrázku, pro: POPIS, FORMÁT, VSTUPNÍ MASKA a TITULEK.

Příklad:  Chceme např. výslednou hodnotu dotazu zaokrouhlit na dvě desetinná místa, tedy nadefinovat jinou vlastnost než která je nastavena ve zdrojové tabulce.  Pak to učiníme podle následujího vzoru: výraz na dvě desetinná místa

desetinna_mista

3.  Zadání výběrových kritérií

Dalším krokem při tvorbě dotazu je definování kritérií pro jedno či více polí. K danému účelu můžeme použít následujících výrazů.

= používá se k hledání přesně definovaného textu, nebo čísla
< hledá číslo menší, nebo text abecedně nižší, než uvedená hodnota
> hledá číslo větší, nebo text abecedně vyšší, než uvedená hodnota
<> hledá všechny záznamy nerovnající se uvedené podmínce
Is Null Hledá prázdné záznamy
Is Not Null Hledá neprázdné záznamy

3.1  Operátor AND versus OR

Použití operátoru AND a OR si ukážeme pro názornější pochopení na příkladu. K danému účelu využijeme cvičných dat ( stáhnout data ?)

Příklad:  Chceme vypsat v dotazu pouze oddělení od č. 110 do č. 120 včetně:

Zápis dotazu
Výsledek dotazu
AND_s AND_vysledek_s

Poznámka: Uvozovky do výrazu vypisovat nemusíme, systém si je tam automaticky zavede sám….

Příklad:  Chceme vypsat v dotazu pouze oddělení č. 110 a zároveň č. 120. K danému účelu použijeme operátor OR.

Zápis dotazu
Výsledek dotazu
OR_s OR_vysledek_s

Stejného výsledku však dosáhneme i s následujícím zápisem:

Zápis dotazu
Výsledek dotazu
 OR_jinak_s OR_vysledek_s

3.2  Klauzule BETWEEN, IN a LIKE

Kromě porovnávacích operátorů nabízí Access tři speciální klauzule, které slouží k definování požadovaných dat v množině záznamů.

Klauzule Popis
BETWEEN Určena pro specifikování rozsahu hodnot.
Klauzule Between 110 And 120 je stejná, jako určení >= 110 And <= 120.
IN Určena pro specifikování seznamu hodnot, z nichž libovolná může odpovídat vyhledávanému poli. Klauzule In („110“; „120“) se shoduje s klauzulí „110“ Or „120“.
LIKE Určena pro vyhledávání vzorů v textových polích.
 * Používá se pro nahrazení jakéhokoliv počtu znaků v řetězci
 ?  Používá se pro nahrazení jednoho znku v řetězci

Použití jednotlivých klauzulí si ukážeme opět na příkladech.

Příklad:  Již nám známý … Chceme vypsat oddělení od č. 110 do č. 120 včetně. K danému účelu ale použijeme klauzuli BETWEEN.

Zápis dotazu
Výsledek dotazu
 BETWEEN_s AND_vysledek_s

Příklad:  Opět již náš známý … Chceme vypsat v dotazu pouze oddělení č. 110 a zároveň č. 120. K danému účelu ale použijeme klauzuli IN.

Zápis dotazu
Výsledek dotazu
 IN_s OR_vysledek_s

Příklad:  Chceme vypsat kategorie, resp. subkategorie lesa ochranného. K danému účelu použijeme klauzuli LIKE.

  Zápis dotazu
Výsledek dotazu
Like2_270
 Na majetku se z ochranných lesů nachází  pouze subkategorie  21a.

Like2_vysl_270

Příklad:  Chceme vypsat konkrétní subkategorii lesa zvláštního určení (subkategorii 32). K danému účelu použijeme klauzuli LIKE.

Zápis dotazu
Výsledek dotazu
Like32_270
Like32_vysl_270

Příklad:  Chceme vypsat etáže, které jsou zařazeny do kategorie lesa zvláštního určení a číslo jejich hospodářského souboru přitom odpovídá kategorii lesa hospodářského.

 Zápis dotazu Výsledek dotazu
 Like_zu_hosp_270  Like_zu_hosp_vysl_270

3.3  Definování aritmetických výrazů

K definování aritmetických výrazů můžeme použít níže uvedených výrazů.

Výraz Charakteristika výrazu
+
Sečítá dva číselné výrazy.
Odečítá dva číselné výrazy.
*
Násobí dva číselné výrazy.
/
Dělí první číselný výraz druhým číselným výrazem.
\
Zaokrouhluje oba číselné výrazy na celá čísla a dělí první celé číslo druhým celým číslem. Výsledek je zaokrouhlen na celé číslo.
^
Umocní první číselný výraz mocninou, která je určena druhým číselným  výrazem.

K pochopení rozdílů mezi výrazy „/“ a „\“ použijeme následujícího příkladu.
Příklad:  Chceme vypočítat průměrnou plochu oddělení (ODD) na cvičném majetku (opět z dat cvičné databáze). Výsledek dotazu vznikne podílem celkové plochy majetku a počtu jeho oddělení.

 Výsledek dotazu na průměrnou plochu oddělení s využitím následujících výrazů:
„/“
„\“
lomitko
opacne_lomitko

3.4  Použití Tvůrce výrazů

K snadnějšímu zápisu složitých výrazů nabízí Access tzv. Tvůrce výrazů.  Tvůrce výrazů vyvoláme tak, že klikneme do buňky „Pole“ ve spodní části návrhu dotazu, klikneme pravým tlačítkem myší a vybereme možnost „Sestavit“.

Téhož dosáhneme, když klikneme do buňky „Pole“ ve spodní části návrhu dotazu a z horní nabídkové lišty vybereme ikonu ikona_sestavitTvůrce výrazů .

Objeví se následující dialogové okno:

tvurce_vyrazu

V horní části tohoto okna je prázdné textové pole, ve kterém můžete vytvářet výrazy.

Výraz můžete zadat sami, někdy je však přesnější nalézt názvy polí, operátory a funkce v příslušném poli se seznamem v dolní části okna a použít tlačítka operátorů pod kontextovými poli.