MS ACCESS parametrický dotaz Roman Danel
Příprava: tabulky Vytvořte tabulku ODBERATELE s poli: ID_ODBERATEL (automatické číslo) NAZEV (text) ICO (číslo) ADRESA (text) Vytvořte tabulku PRODEJ s poli: ID_PRODEJ (automatické číslo) ID_ODBERATEL (číslo) NAZEV_ZBOZI (text) DATUM (datum) KUSY (číslo)
Příprava: vytvoření relace a vložení dat Vytvořte relaci 1:N mezi oběma tabulkami přes ID_ODBERATEL Do tabulek vložte testovací data tak, aby v tabulce PRODEJ bylo několik záznamů s různými datumy (aspoň dva starší 1.10.2010 a několik s datumem vyšším)
Vytvoření dotazu - návrh Vytvořit – Návrh dotazu Vložte tabulky ODBERATEL a PRODEJE Do dotazu přidejte pole: Název odběratele Adresa Název zboží Datum kusy
Uložení dotazu Dotaz uložte pod jménem „Prodej za období“
Definování kritéria V položce „Datum“ zvolte „kritéria“ a v tomto poli klikněte pravým tlačítkem myši Otevře se nabídka, ze které zvolte „Sestavit“ Zobrazí se „Tvůrce výrazů“ V něm zadejte between 1.10.2010 and 31.12.2010 Dotaz uložte a zobrazte data
Resume Dotaz není funguje jako jednoduchý filtr – výstupem je „tabulka“, která zobrazuje pouze zvolené sloupce a vyfiltrovaná data načtená z reálných tabulek Poznámka: V databázových systémech se pro tento objekt používá termín VIEW.
Úprava na parametrický dotaz Otevřete dotaz v návrhovém zobrazení V poli „kritéria“ pro sloupec datum otevřete Tvůrce výrazů Text „between 1.10.2010 and 31.12.2010 změňte na „between [Počáteční datum:] and [Koncové datum:] Změny v dotazu uložte
Příklad č.2 Dotaz realizující výpočet funkce (bez tabulek)
Zadání Vytvořte dotaz, který vypočítá funkci (sin(x) * cos(x)) / (1 – sin(y))
Vytvoření dotazu Zvolte „Vytvořit“ a „Návrh dotazu“ Průvodce se seznamem tabulek zavřete tlačítkem „Zavřít“ bez vložení tabulky do dotazu V prvním sloupci v řádku „Pole“ klikněte pravým tlačítkem myši, zvolte „Sestavit“ – zobrazí se Tvůrce výrazů
Definice funkce V tvůrci výrazů definujte pomocí „Funkce“ Sin([«angle»])*Cos([«angle»])/(1-Cos([«angle»])) Dotaz uložte jako „Výpočet funkce“ a vyzkoušejte zda funguje. Poznámka: bude mít nyní pouze jeden parametr – angle
Parametrizace dotazu Otevřete znovu Tvůrce výrazů (v návrhovém zobrazení dotazu) Změňte parametry ve výrazu takto: Sin([Hodnota x])*Cos([Hodnota x])/(1-Cos([Hodnota y])) Dotaz uložte a vyzkoušejte