Průvodce syntaxí výrazu

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Když používáte Microsoft Access, často potřebujete pracovat s hodnotami, které nejsou přímo ve vašich datech. Potřebujete třeba vypočítat prodejní daň na objednávce nebo celkovou hodnotu samotné objednávky. Tyto hodnoty můžete počítat pomocí výrazů. Abyste mohli použít výrazy, musíte je nejdřív napsat s použitím správné syntaxe. Syntaxe představuje sadu pravidel, podle kterých se správně kombinují slova a symboly ve výrazu. Čtení výrazů v Accessu je ze začátku trochu náročnější. S pochopením syntaxe výrazů a trochou praxe se ale všechno zjednoduší.

V tomto článku

Základní informace o výrazech

Výraz je kombinace předdefinovaných nebo uživatelem definovaných funkcí, identifikátorů, operátorů, hodnot nebo konstant. Výsledkem výrazu je jedna hodnota.

Součásti výrazu

Následující výraz například obsahuje běžné součásti:

=Sum([Purchase Price])*0.08 
  • Sum() je integrovaná funkce.
  • [Purchase Price] je identifikátor.
  • * je matematický operátor.
  • 0.08 je konstanta

Tento výraz můžete použít v textovém poli v zápatí formuláře nebo sestavy k výpočtu DPH pro skupinu položek.

Výrazy můžou být mnohem složitější nebo jednodušší než uvedený příklad. Například tento logický výraz se skládá pouze z operátoru a konstanty:

>0

Tento výraz vrátí hodnotu:

  • True při porovnání s číslem, které je větší než 0.
  • False při porovnání s číslem, které je menší než 0.

Tento výraz můžete použít ve vlastnosti Ověřovací pravidlo ovládacího prvku nebo pole tabulky, abyste měli jistotu, že budou zadané hodnoty vždy kladné. Výrazy se používají na různých místech k výpočtům, práci se znaky nebo testování dat. Tabulky, dotazy, formuláře, sestavy a makra mají vlastnosti, pro které můžete zadávat výrazy. Výrazy můžete například použít ve vlastnostech ovládacího prvku Zdroj ovládacího prvku a Výchozí hodnota. Můžete je použít také ve vlastnosti Ověřovací pravidlo pole tabulky.

Začátek stránky

Součásti výrazu

Pokud chcete vytvořit výraz, zkombinujete identifikátory pomocí funkcí, operátorů, konstant a hodnot. Libovolný platný výraz musí obsahovat aspoň jednu funkci nebo aspoň jeden identifikátor a může obsahovat také konstanty nebo operátory. Výraz můžete použít také jako součást jiného výrazu – obvykle jako argument funkce. Tomu se říká vnoření výrazu.

  • Identifikátory mají obecně tento formát:

    [Collection name]![Object name].[Property name]
    

    Vy musíte jenom zadat dostatek částí identifikátoru, aby byl v kontextu vašeho výrazu jedinečný. Není neobvyklé, že identifikátor má tvar [Object name].

  • Funkce mají obecně tento formát:

    Function(argument, argument)
    

    Jeden z argumentů je obvykle identifikátor nebo výraz. Některé funkce nevyžadují žádné argumenty. Než použijete konkrétní funkci, podívejte se na její syntax. Další informace najdete v tématu popisujícím funkce (seřazené podle kategorie).

  • Operátory mají obecně tento formát:

    Identifier operator identifier
    

    U tohoto formátu jsou určité výjimky, jak je uvedeno v oddílu Operátory.

  • Konstanty mají obecně tento formát:

    Identifier comparison_operator constant
    
  • Hodnoty se můžou ve výrazu vyskytovat na mnoha místech.

Začátek stránky

Objekty, kolekce a vlastnosti

Všechny jednotlivé tabulky, dotazy, formuláře, sestavy a pole v databázi aplikace Access se označují jako objekty. Každý objekt má název. Některé objekty už název mají, třeba tabulka Kontakty v databázi vytvořená ze šablony Kontakty v systém Microsoft Office Accessu. Když vytvoříte nový objekt, dáte mu název.

Sada všech členů určitého typu objektu se označuje jako kolekce. Kolekce je například sada všech tabulek v databázi. Některé objekty, které jsou členem kolekce ve vaší databázi, můžou být také kolekcemi, které obsahují další objekty. Například objekt tabulky představuje kolekci, která obsahuje objekty pole.

Objekty mají vlastnosti, které popisují vlastnosti objektu a nabízí možnost je změnit. Například objekt dotazu má vlastnost Výchozí zobrazení, která popisuje i umožňuje určit, jak se dotaz zobrazí při spuštění.

V následujícím schématu můžete vidět vztah mezi kolekcemi, objekty a vlastnostmi:

Vzájemné vztahy kolekcí, objektů a vlastností 3 Vlastnost


2 Objekt


1 Kolekce

Začátek stránky

Identifikátory

Když použijete ve výrazu objekt, kolekci nebo vlastnost, odkazujete na daný prvek s použitím identifikátoru. Identifikátor obsahuje název prvku, který identifikujete, a také název prvku, ke kterému patří. Například identifikátor pro pole obsahuje název pole a název tabulky, do které pole patří. Příkladem takového identifikátoru je:

[Customers]![BirthDate]

V některých případech funguje název prvku sám o sobě jako identifikátor. Platí to, pokud je název prvku v kontextu výrazu, který vytváříte, jedinečný. Zbytek identifikátoru vyplývá z kontextu. Když například navrhujete dotaz, který používá jenom jednu tabulku, budou samotná pole fungovat jako identifikátory, protože názvy polí v tabulce musí být v této tabulce jedinečné. Vzhledem k tomu, že používáte jenom jednu tabulku, obsahuje název tabulky každý identifikátor, který používáte v daném dotazu k odkazování na pole.

V ostatních případech je nutné k tomu, aby odkaz fungoval, uvést přesně části identifikátoru. Platí to tehdy, když není identifikátor jedinečný v kontextu výrazu. V případě nejasnosti je potřeba přesně uvést dostatečný počet částí identifikátoru, aby byl v kontextu jedinečný. Předpokládejme například, že navrhujete dotaz, který používá tabulku s názvem Výrobky a tabulku s názvem Objednávky, a že obě tabulky obsahují pole s názvem IDProduktu. V takovém případě musí identifikátor, který použijete v dotazu pro odkaz na pole IDProduktu, obsahovat kromě názvu pole také název tabulky. Příklad:

[Products]![ProductID]

Operátory identifikátoru: V identifikátoru je možné použít jeden ze tří operátorů.

  • Operátor třesku (!)
  • Operátor tečky (.)
  • Operátor hranatých závorek ([ ])

Tyto operátory se používají tak, že každou část identifikátoru ohraničíte hranatými závorkami a pak je spojíte pomocí operátoru ! (vykřičník) nebo . (tečka). Například identifikátor pole s názvem Příjmení v tabulce s názvem Zaměstnanci lze vyjádřit jako [Employees]![Last Name]. Operátor vykřičník říká Accessu, že následuje objekt, který patří ke kolekci před operátorem vykřičník. V tomto případě je [Příjmení] objekt pole, který patří ke kolekci [Zaměstnanci], která je sama objektem tabulky.

Abychom byli přesní, ne vždy je nutné psát kolem identifikátoru nebo částečného identifikátoru hranaté závorky. Pokud identifikátor neobsahuje žádné mezery ani jiné speciální znaky, přidá Access závorky automaticky při čtení výrazu. Je však vhodné zadávat závorky sami – pomůže vám to vyhnout se chybám a funguje také jako vizuální vodítko, že určitá část výrazu je identifikátor.

Začátek stránky

Funkce, operátory, konstanty a hodnoty

K vytvoření výrazu potřebujete víc než jen identifikátory – potřebujete provést nějakou akci. K provádění akcí ve výrazu slouží funkce, operátory a konstanty.

Funkce

Funkce je postup, který můžete použít ve výrazu. Některé funkce, jako je třeba Date, nevyžadují k tomu, aby fungovaly, žádný vstup. Většina funkcí ale vyžaduje vstupy, kterým se říká argumenty.

V příkladu na začátku tohoto článku používá funkce DatePart dva argumenty: argument interval s hodnotou "yyyy" a argument datum s hodnotou [Customers]![BirthDate]. Funkce DatePart vyžaduje minimálně tyto dva argumenty (interval a datum), ale může je mít až čtyři.

V následujícím seznamu vidíte některé funkce, které se běžně používají ve výrazech. Další informace o syntaxi, která se používá s danou funkcí, zobrazíte kliknutím na odkaz na příslušnou funkci.

  • Funkce Date se používá k vložení aktuálního systémového data do výrazu. Používá se běžně s funkcí Format a také s identifikátory polí, která obsahují data kalendářního data a času.

    =Date()
    
  • Funkce DatePart slouží k určení nebo extrahování části data – obvykle data získaného z identifikátoru pole, ale někdy i hodnoty data, která je vrácena jinou funkcí, například Date.

    DatePart ( "yyyy", Date())
    
  • Funkce DateDiff slouží k určení rozdílu mezi dvěma kalendářními daty – obvykle mezi datem získaným z identifikátoru pole a datem, které je získáno pomocí funkce Date.

    =DateDiff("d", Now(), [Orders].[ReceiveBefore])-10 
    
  • Funkce Format umožňuje použít formát u identifikátoru a u výsledků jiné funkce.

    Format([Date],"ww")=Format(Now(),"ww")-1 
    
  • Funkce IIf se používá k vyhodnocení výrazu jako true nebo false a pak vrátí jednu hodnotu, pokud se výraz vyhodnotí jako true, a jinou hodnotu, pokud se výraz vyhodnotí jako false.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
    
  • Funkce InStr slouží k vyhledání pozice znaku nebo řetězce v jiném řetězci. Hledaný řetězec se obvykle získá z identifikátoru pole.

    InStr(1,[IPAddress],".")
    
  • Funkce Left, Mid a Right se používají k extrakci znaků z řetězce, a to od znaku úplně nalevo (Left), určité pozice uprostřed (Mid) nebo znaku úplně napravo (Right). Běžně se používají s funkcí InStr. Řetězec, ze kterého tyto funkce extrahují znaky, se obvykle získává z identifikátoru pole.

    Left([ProductName], 1)
    Right([AssetCode], 2) 
    Mid([Phone],2,3) 
    
    

Seznam funkcí najdete v tématu popisujícím funkce (seřazené podle kategorie).

Operátory

Operátor je slovo nebo symbol označující určitý aritmetický nebo logický vztah mezi ostatními prvky výrazu. Operátory můžou být následující:

  • Aritmetické, například znaménko plus (+).
  • Porovnání, například rovnítko (=).
  • Logické, například Not.
  • Zřetězení, například &.
  • Speciální, například Like.

Operátory se nejčastěji používají k označení vztahu mezi dvěma identifikátory. Následující tabulky popisují operátory, které můžete použít v accessových výrazech.

Aritmetické

Aritmetické operátory slouží k výpočtu hodnoty ze dvou nebo více čísel nebo ke změně znaménka čísla z kladného na záporné.

Operátor Účel Příklad
+ Sečte dvě čísla. [Mezisoučet]+[DPH]
- Vypočítá rozdíl mezi dvěma čísly nebo označí zápornou hodnotu čísla. [Cena]-[Sleva]
* Vynásobí dvě čísla. [Množství]*[Cena]
/ Vydělí první číslo druhým číslem. [Celkem]/[PočetPoložek]
\ Zaokrouhlí obě čísla na celé číslo, potom vydělí první číslo druhým číslem a výsledek zobrazí jako celé číslo. [Přihlášeno]\[Pokoje]
Mod Vydělí první číslo druhým číslem a vrátí jenom zbytek. [Přihlášeno] Mod [Pokoje]
^ Vypočítá číslo umocněné na zadanou mocninu. Číslo ^ Mocnina

Porovnání:

Relační operátory slouží k porovnání hodnot a vrácení výsledku, který má hodnotu True, False nebo Null (neznámá hodnota).

Operátor Účel
< Určuje, jestli je první hodnota menší než druhá.
<= Určuje, jestli je první hodnota menší nebo rovna druhé hodnotě.
> Určuje, jestli je první hodnota větší než druhá.
>= Určuje, jestli je první hodnota větší nebo rovna druhé hodnotě.
= Určuje, jestli se první hodnota rovná druhé hodnotě.
<> Určuje, jestli se první hodnota nerovná druhé hodnotě.

Ve všech případech, pokud je Nullprvní nebo druhá hodnota , je výsledek také Null. Vzhledem k tomu Null , že představuje neznámou hodnotu, je také neznámý výsledek jakéhokoli porovnání s Null .

Logické

Logické operátory slouží ke kombinování dvou hodnot a vrací hodnoty True, False nebo Null. Logické operátory se označují taky jako Booleovské.

Operátor Použití Popis
And Výraz1 And Výraz2 Vrátí hodnotu True, pokud má Výraz1 i Výraz2 hodnotu True.
Or Výraz1 Or Výraz2 Vrátí hodnotu True, pokud má Výraz1 nebo Výraz2 hodnotu True.
Eqv Výraz1 Eqv Výraz2 Vrátí hodnotu True, pokud má Výraz1 i Výraz2 hodnotu True nebo pokud mají oba výrazy hodnotu False.
Not Not Výraz Vrátí hodnotu True, pokud Výraz nemá hodnotu True.
Xor Výraz1 Xor Výraz2 Vrátí hodnotu True, pokud má hodnotu True Výraz1 nebo Výraz2, ale ne oba výrazy.

Zřetězení

Operátory zřetězení slouží ke sloučení dvou textových hodnot do jednoho řetězce.

Operátor Použití Popis
& řetězec_1 & řetězec_2 Sloučí dva řetězce do jednoho.
+ řetězec_1 + řetězec_2 Sloučí dva řetězce do jednoho a zachovává při řetězení hodnoty null.

Speciální

Použití speciálních operátorů je popsané v následující tabulce.

Operátor Popis Další informace
Is Null or Is Not Null Určuje, jestli je hodnota Null nebo Not Null.
Like "pattern" Porovná řetězcové hodnoty pomocí zástupných operátorů ?a *. Operátor Like
Between val1 And val2 Určí, jestli se číselná hodnota nebo datum nachází v daném rozsahu. Operátor Between...And
In(string1,string2...) Určuje, jestli je hodnota řetězce obsažená v sadě hodnot řetězců. Operátor In

Konstanty

Konstanta je známá hodnota, která se nemění a kterou můžete použít ve výrazu. V Accessu existují čtyři běžně používané konstanty:

  • True označuje něco, co je logicky pravdivé.
  • False označuje něco, co je logicky false.
  • Null označuje chybějící známou hodnotu.
  • "" (empty string) označuje hodnotu, o které je známo, že je prázdná.

Konstanty se dají použít jako argumenty u funkce a je možné je použít ve výrazu jako součást kritéria. Můžete například použít prázdnou řetězcovou konstantu ("") jako součást kritéria pro sloupec v dotazu k vyhodnocení hodnot polí pro tento sloupec zadáním následujícího kritéria: <>"". V tomto příkladu <> je operátor a "" je konstanta. Při společném použití označují, že by se měl identifikátor, u kterého jsou použité, porovnat s prázdným řetězcem. Výraz se vyhodnotí jako pravdivý, když je hodnota identifikátoru cokoli jiného než prázdný řetězec.

Při používání konstanty Null buďte opatrní. Ve většině případů způsobí použití Null ve spojení s relačním operátorem chybu. Pokud chcete porovnat hodnotu Null s ve výrazu, použijte Is Null operátor nebo Is Not 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. Pokud znaménko chybí, předpokládá Access kladnou hodnotu. Pokud chcete hodnotu nastavit jako zápornou, zahrňte znaménko minus (-). Můžete použít taky exponenciální notaci. V takovém případě použijte písmeno E nebo e a znak exponentu (třeba 1,0E-6).

Když 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 například zadáte text Paris, Access ve výrazu zobrazí "Paříž". Pokud chcete, aby výraz vytvořil řetězec, který je ve skutečnosti uzavřený v uvozovkách, uzavřete vnořený řetězec buď do jednoduchých ('), nebo do tří sad dvojitých uvozovek ("). Třeba tyto výrazy jsou ekvivalentní:

Forms![Contacts]![City]. DefaultValue = ' "Paris" ' 
Forms![Contacts]![City].DefaultValue = " " "Paris" " " 

Pokud chcete použít hodnoty data a času, uzavřete je do znaménka# (). Platné jsou například všechny tyto hodnoty data a času: #3-7-17#, #7-Bře-17# a #Bře-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.

Začátek stránky

Pro výraz ve webové databázi platí limit 65 vnoření

Výrazy vnořené do hloubky více než 65 úrovní nebudou v prohlížeči fungovat, takže byste je neměli používat ve webové databázi Accessu. Nezobrazí se žádné chybové zprávy – výraz prostě nebude fungovat.

Použití &operátorů , ANDa OR může na serveru vytvořit další úrovně vnoření, které se v klientovi Accessu neprojeví. Například výraz "a" & "b" & "c" není vnořený v Tvůrci výrazů, ale v SharePointu se změní na concatenate.Db("a", concatenate.Db("b", "c") ). Tento překlad vytváří jednu úroveň vnoření. Použití mnoha po sobě jdoucích &operátorů , ANDnebo OR v jednom výrazu může způsobit překročení limitu vnoření serveru 65. V tomto okamžiku výraz nebude fungovat v prohlížeči.

Začátek stránky

Článek o použití Tvůrce výrazůČlánek s úvodem k výrazůmČlánek o tvorbě výrazůPříklady výrazů