Výrazy se dají v Microsoft Accessu používat k mnoha různým úlohám, třeba k matematickým výpočtům, kombinování nebo extrahování textu nebo k ověřování dat. V tomto článku najdete základní informace o výrazech – kdy je použít, v čem se liší od vzorců Microsoft Excelu a jaké jsou jejich součásti.
V tomto článku
Základní informace o výrazech
Představte si to takto: Když chcete, aby Access něco udělal, musíte mluvit jeho jazykem. Předpokládejme třeba, že chcete, aby se Access „podíval na pole s daty narození v tabulce zákazníků a řekl vám datum narození určitého zákazníka“. Výraz napíšete takto:
DatePart("yyyy",[Customers]![BirthDate])
Tento výraz se skládá z funkce DatePart a hodnot dvou argumentů – "yyyy" ("rrrr") a [Customers]![BirthDate] ([Zákazníci]![Datum narození]).
Podívejme se na tento výraz podrobněji.
1 DatePart je funkce, která kontroluje datum a vrátí určitou část. V tomto případě jsme použili dva argumenty.
2 Argument interval říká Accessu, kterou část data vrátit – v tomto případě "yyyy" říká Accessu, že chcete vrátit jenom část obsahující rok.
3 Argument kalendářního data říká Accessu, kde má hledat hodnotu data – v tomto případě Customers]![BirthDate] říká Accessu, že má hledat datum v poli s datem narození v tabulce se zákazníky.
Použití výrazů
Výrazy umožňují:
-
Vypočítat hodnoty, které nejsou přímo ve vašich datech. Můžete vypočítat hodnoty v polích v tabulkách a dotazech a taky hodnoty v ovládacích prvcích ve formulářích a sestavách.
-
Definovat výchozí hodnotu pro pole tabulky nebo ovládací prvek ve formuláři nebo sestavě. Výchozí hodnoty se potom zobrazí při každém otevření tabulky, formuláře nebo sestavy.
-
Vytvořit ověřovací pravidlo. Ověřovací pravidlo určuje, které hodnoty můžou uživatelé zadat do pole nebo ovládacího prvku.
-
Definovat kritéria dotazu a omezit tak výsledky na požadovanou dílčí sadu.
Výpočet hodnot
Jedním z nejběžnějších způsobů použití výrazů v Accessu je výpočet hodnot, které neexistují přímo ve vašich datech. Sloupec v tabulce nebo dotazu, který pochází z výpočtu, se nazývá počítané pole. Můžete vytvořit počítané pole, které kombinuje dvě nebo více polí tabulky. V mnoha tabulkách se například jméno a příjmení ukládají v samostatných polích. Pokud chcete zkombinovat jméno a příjmení a zobrazit je v jednom poli, můžete v tabulce nebo dotazu vytvořit počítané pole:
[FirstName] & " " & [LastName].
V tomto případě ampersandy (&) zkombinují hodnotu v poli FirstName (Jméno), znak mezery (mezera je uzavřená do uvozovek) a hodnotu v poli LastName (Příjmení).
Definování výchozí hodnoty
Výrazy v Accessu taky můžete použít k tomu, abyste zadali výchozí hodnotu pro pole v tabulce nebo pro ovládací prvek. Pokud třeba chcete nastavit výchozí hodnotu pole s datem na aktuální datum, zadáte do pole vlastnosti Výchozí hodnota pro dané pole toto:
Date()
Vytvoření ověřovacího pravidla
Výraz můžete použít také k nastavení ověřovacího pravidla. V ovládacím prvku nebo poli tabulky byste třeba mohli použít ověřovací pravidlo, které bude vyžadovat, aby bylo zadané datum stejné jako aktuální datum nebo pozdější. V takovém případě nastavíte hodnotu v poli vlastnosti Ověřovací pravidlo takto:
>= Date()
Definování kritérií dotazu
A konečně, výraz můžete použít taky k nastavení kritérií dotazu. Předpokládejme třeba, že chcete zobrazit prodej produktů u objednávek, které se expedovaly v určitém časovém rámci. Zadáním kritérií můžete definovat rozsah dat a Access vrátí jenom řádky, které těmto kritériím vyhovují. Výraz by v tomto případě mohl vypadat následovně:
Between #1/1/2017# And #12/31/2017#
Když k dotazu přidáte kritéria a potom ho spustíte, vrátí jenom ty hodnoty, které vyhovují zadaným datům.
Příklady výrazů
V této tabulce najdete pár ukázek accessových výrazů a jejich typického použití:
Výraz |
Účel |
---|---|
=[RequiredDate]-[ShippedDate] |
Vypočítá rozdíl mezi hodnotami dat ve dvou ovládacích prvcích typu Textové pole označených RequiredDate (Dodat dne) a ShippedDate (Datum odeslání) v sestavě. |
Date() |
Nastaví výchozí hodnotu pole tabulky typu Datum a čas na aktuální datum. |
Between #1/1/2017# And #12/31/2017# |
Určuje kritéria pro pole typu Datum a čas v dotazu. |
=[Orders Subform].Form!OrderSubtotal |
Vrátí hodnotu ovládacího prvku OrderSubtotal (Mezisoučet objednávky) v podformuláři s názvem Orders Subform (Podformulář objednávek), který je ve formuláři Orders (Objednávky). |
>0 |
Nastaví ověřovací pravidlo pro číselné pole v tabulce – uživatelé musí zadat hodnoty větší než nula. |
Některé výrazy začínají operátorem rovná se (=) a jiné ne. Při počítání hodnoty pro ovládací prvek ve formuláři nebo v sestavě se operátor = používá na začátku výrazu. V jiných výskytech výrazu, třeba v dotazu nebo ve vlastnosti DefaultValue (Výchozí hodnota) nebo ValidationRule (Ověřovací pravidlo) pole nebo ovládacího prvku, se operátor = nepoužívá, pokud výraz nepřidáváte do textového pole v tabulce. V některých případech, třeba když přidáváte výrazy do dotazů, Access odebere operátor = automaticky.
Součásti výrazu
Výraz se skládá z několika možných součástí, které můžete samostatně nebo v kombinacích používat k dosažení nějakého výsledku. Mezi tyto součásti patří:
-
Identifikátory Názvy polí tabulky nebo ovládacích prvků formulářů nebo sestav, případně vlastnosti těchto polí a ovládacích prvků
-
Operátory Například plus (+) nebo minus (-)
-
Funkce Například SUM nebo AVG
-
Konstanty Hodnoty, které se nemění, třeba řetězce textu nebo čísla, která se nepočítají pomocí výrazu
-
Hodnoty Řetězce, třeba „Zadejte číslo v rozmezí 1 až 10“, nebo čísla (například 1 254), které se používají v operacích
Následující části obsahují podrobnější informace o těchto součástech.
Identifikátory
Identifikátor je název pole, vlastnosti nebo ovládacího prvku. Identifikátor ve výrazu slouží k označení hodnoty spojené s polem, vlastností nebo ovládacím prvkem. Podívejte se třeba na výraz =[RequiredDate]-[ShippedDate] (=[Dodat dne]-[Datum odeslání]). Tento výraz odečte hodnotu pole nebo ovládacího prvku ShippedDate (Datum odeslání) od hodnoty pole nebo ovládacího prvku RequiredDate (Dodat dne). V tomto výrazu slouží RequiredDate i ShippedDate jako identifikátory.
Operátory
Access podporuje řadu operátorů včetně běžných aritmetických operátorů, jako jsou +, -, * (krát) a / (děleno). Můžete také používat relační operátory, například < (menší než) nebo > (větší než), k porovnání hodnot, textové operátory, například & a + ke spojování (kombinování) textu, logické operátory, například Not a And, k určování hodnot True (Pravda) a False (Nepravda) a operátory specifické pro Access.
Funkce
Funkce jsou předdefinované procedury, které můžete používat ve svých výrazech. Funkce se používají k řadě operací, jako jsou výpočty hodnot, manipulace s textem a daty a shrnutí dat. Běžně se používá například funkce DATE, která vrací aktuální datum. Funkci DATE můžete použít mnoha způsoby, například ve výrazu, který nastaví výchozí hodnotu pro pole v tabulce. Kdykoli pak někdo v takovém případě přidá nový záznam, bude výchozí hodnotou pro toto pole aktuální datum.
Některé funkce vyžadují argumenty. Argument je hodnota, která poskytuje vstup do funkce. Pokud funkce vyžaduje více argumentů, oddělíte je čárkou. Podívejte se například na funkci DATE v tomto příkladu výrazu:
=Format(Date(),"mmmm d, yyyy")
V tomto příkladu jsou použity dva argumenty:
-
Prvním argumentem je funkce Date(), která vrací aktuální datum. I když nezadáte žádné argumenty, musíte přidat závorky funkce.
-
Druhým argumentem, který od prvního argumentu odděluje čárka, je "dd.mm.rrrr". Tento argument určuje textový řetězec, který dává pokyn funkci FORMAT, jak má naformátovat vrácenou hodnotu data. Všimněte si, že textový řetězec musí být uzavřený v uvozovkách.
Tento výraz také ilustruje to, že často vnořujete hodnotu vrácenou jednou funkcí jako argument do jiné funkce. V tomto případě Date() slouží jako argument.
Konstanty
Konstanta je položka, jejíž hodnota se v době, kdy Access běží, nemění. Ve výrazech se často používají konstanty True (Pravda), False (Nepravda) a Null.
Hodnoty
Ve výrazech můžete používat hodnoty literálu, třeba číslo 1 254 nebo řetězec „Zadejte číslo v rozmezí 1 až 10“. Můžete používat i číselné hodnoty, kterými mohou být řady číslic včetně znaménka a desetinné čárky.
Když jako hodnoty používáte textové řetězce, dejte je do uvozovek, aby je Access správně rozpoznal. Za některých okolností zadá Access uvozovky za vás. Když třeba zadáte text do výrazu pro ověřovací pravidlo nebo pro kritérium dotazu, doplní Access uvozovky kolem textu automaticky.
Pokud chcete použít hodnoty data a času, dejte kolem nich znaky křížku (#). Platné jsou například všechny tyto hodnoty data a času: #3-7-17#, #7-Mar-17# a #Mar-7-2017#. Když Access zjistí platnou hodnotu data a času uzavřenou mezi znaky #, automaticky s ní zachází jako s datovým typem Datum a čas.
Srovnání výrazů Accessu a vzorců Excelu
Accessové výrazy se podobají excelovým vzorcům v tom, že k dosažení výsledku používají podobné prvky. Excelové vzorce i accessové výrazy obsahují jeden nebo několik následujících prvků:
-
Identifikátory V Excelu jsou identifikátory názvy jednotlivých buněk nebo oblastí buněk v sešitu, třeba A1, B3:C6 nebo List2!C32. V Accessu jsou identifikátory názvy polí tabulky (třeba [Contacts]![First Name]), ovládací prvky ve formulářích a sestavách (třeba Forms![Task List]![Description]) nebo vlastnosti těchto polí nebo ovládacích prvků (třeba Forms![Task List]![Description].ColumnWidth).
-
Operátory V Accessu i Excelu se operátory používají k porovnání hodnot nebo k jednoduchým výpočtům s daty. Příkladem operátorů jsou plus (+) nebo minus (-).
-
Funkce V Accessu i Excelu se funkce a argumenty používají k provádění úloh, které se nedají udělat jenom pomocí operátorů – můžete například určit průměr z hodnot v poli nebo převést výsledek výpočtu na formát měny. Příkladem funkce je SUM a STDEV. Argumenty jsou hodnoty, které poskytují informace funkcím. Poznámka: Access i Excel obsahují spoustu funkcí, ze kterých se dá vybírat, ale názvy podobných funkcí se v těchto programech někdy liší. Třeba funkce PRŮMĚR v Excelu odpovídá v Accessu funkci AVG.
-
Konstanty V Accessu i Excelu jsou konstanty hodnoty, které se nemění – například čísla, která se nevypočítávají pomocí výrazu.
-
Hodnoty V Accessu i Excelu se hodnoty používají podobným způsobem.
Výrazy v Accessu používají operátory a konstanty, které jsou podobné těm, které se používají ve vzorcích Excelu, ale výrazy v Accessu používají odlišné identifikátory a funkce. Zatímco excelové vzorce se obecně používají jenom v buňkách listu, výrazy v Accessu se používají na různých místech v Accessu pro širokou škálu úkolů včetně následujících:
-
Vytvoření počítaných ovládacích prvků ve formulářích a sestavách
-
Vytvoření počítaných polí v tabulkách a dotazech
-
Použití jako kritérií v dotazech
-
Ověření dat zadávaných do pole nebo do ovládacího prvku ve formuláři
-
Seskupování dat v sestavách
Výpočet číselných hodnot nebo hodnot data a času pomocí matematických operátorů můžete udělat buď pomocí accessového výrazu, nebo excelového vzorce. Pokud třeba chcete vypočítat cenu pro zákazníka po slevě, můžete například použít excelový vzorec =C2*(1-D2) nebo accessový výraz [Cena za kus]*(1-[Sleva]).
Accessový výraz nebo excelový vzorec se dají také použít ke sloučení nebo rozdělení řetězců (nebo jiné manipulaci s nimi) pomocí operátorů pro práci s řetězci. Když třeba chcete spojit jméno a příjmení do jednoho řetězce, můžete například použít excelový vzorec =D3 & " " & D4 nebo accessový výraz = [Jméno] & " " & [Příjmení].