Office
Přihlásit se

Průvodce syntaxí výrazu

Pokud používáte Microsoft Access, často potřebujete pracovat s hodnotami, které nejsou uložené přímo v 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

Součásti výrazu

Objekty, kolekce a vlastnosti

Identifikátory

Funkce, operátory, konstanty a hodnoty

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

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] (Kupní cena) je identifikátor.

  • * je matematický operátor.

  • 0.08 (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 výraz Logická hodnota se skládá jenom z operátoru a konstanty:

>0

Tento výraz vrátí hodnotu:

  • True (Pravda) při porovnání s číslem větším než 0.

  • False (Nepravda) při porovnání s číslem menším 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 část jiného výrazu – obvykle argumentu nebo 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ý. Identifikátor má často formát [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 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 Products (Výrobky) a tabulku s názvem Orders (Objednávky), a že obě tabulky obsahují pole s názvem ProductID (ID produktu). V takovém případě musí identifikátor, který použijete v dotazu pro odkaz na pole ProductID některé z tabulek, obsahovat kromě názvu pole také název tabulky, například:

[Products]![ProductID]

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

  • Operátor vykřičník (!)

  • Operátor tečka (.)

  • Operátor hranaté závorky ([ ])

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 nazvané Zaměstnanci je možné vyjádřit jako [Zaměstnanci]![Příjmení]. 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 z kolekce [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 ale vhodné, abyste psali závorky sami – pomůže vám to vyhnout se chybám a funguje to také jako vizuální nápověda, že je určitá část výrazu identifikátor.

Začátek stránky

Funkce, operátory, konstanty a hodnoty

Pokud chcete vytvořit výraz, budete potřebovat víc než identifikátory – bude nutné 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 intervalu s hodnotou yyyy a argument data s hodnotou [Customers]![BirthDate] ([Zákazníci]![DatumNarození]). Funkce DatePart vyžaduje minimálně tyto dva argumenty (interval a datum), ale dokáže zpracovat až čtyři argumenty.

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 se používá k určení nebo extrakci části kalendářního data – obvykle data získaného z identifikátoru pole, někdy se ale jedná o hodnotu data vrácenou jinou funkcí, jako je třeba Date.

    DatePart ( "yyyy", Date())
  • Funkce DateDiff se používá k určení rozdílu mezi dvěma daty – obvykle mezi datem získaným z identifikátoru pole a datem získaným 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 slouží k vyhodnocení výrazu jako pravdivého (True) nebo nepravdivého (False) a k následnému vrácení jedné určené hodnoty, pokud se výraz vyhodnotí jako pravdivý, a jiné určené hodnoty, pokud se vyhodnotí jako nepravdivý.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
  • Funkce InStr se používá 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 symbol Plus (+)

  • Relační, například symbol Rovná se (=)

  • 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 první nebo druhá hodnota Null, bude mít hodnotu Null i výsledek. Protože hodnota Null představuje neznámou hodnotu, nebude známý ani žádný výsledek porovnání s hodnotou 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 znaků ? 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 pravda.

  • False označuje něco, co je logicky nepravda.

  • Null znamená, že není známá žádná hodnota.

  • "" (empty string) označuje hodnotu, o které se ví, ž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 konstantu prázdného řetězce ("") jako část kritéria sloupce v dotazu pro vyhodnocení hodnot polí pro příslušný sloupec, a to zadáním následujících znaků jako kritéria: <>"". V tomto příkladu je <> operátor a "" 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.

Konstantu Null používejte obezřetně. Ve většině případů bude výsledkem použití konstanty Null ve spojení s operátorem chyba. Pokud chcete porovnat hodnotu s hodnotou Null ve výrazu, použijte operátor Is Null nebo Is Not Null.

Hodnoty

Ve výrazech můžete použít literálové hodnoty, jako je třeba řetězec „Zadejte hodnotu mezi 1 a 10.“ nebo číslo 1254. Můžete taky použít číselné hodnoty, což můžou být řady číslic včetně znaménka a desetinné čárky, pokud je to potřeba. Pokud znaménko chybí, předpokládá Access kladnou hodnotu. Pokud chcete, aby byla hodnota záporná, musí obsahovat znaménko mínus (-). 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 napíšete Paris (Paříž), zobrazí Access ve výrazu "Paris". Pokud chcete, aby výraz vytvořil řetězec, který je ve skutečnosti ohraničený uvozovkami, můžete takový vnořený řetězec ohraničit jednoduchými uvozovkami (') nebo třemi sadami 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, dejte kolem nich znaky křížku (#). 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 s více než 65 úrovněmi vnoření nebudou v prohlížeči fungovat, proto takové výrazy ve webové databázi Accessu nepoužívejte. Při jejich použití se nezobrazí žádné chybové zprávy, pouze výraz nebude fungovat.

Použití operátorů &, AND a OR může způsobit další vnoření serverového kódu, které se neprojeví v klientu aplikace Access. Například u výrazu "a" & "b" & "c" nedochází ke vnoření na úrovni Tvůrce výrazů, ale v SharePointu se přeloží na kód concatenate.Db("a", concatenate.Db("b", "c") ). Tento převod představuje jednu úroveň vnoření. Při použití množství po sobě následujících operátorů &, AND nebo OR v jednom výrazu můžete překročit limit 65 vnoření serveru. Potom výraz nebude v prohlížeči fungovat.

Začátek stránky

Viz taky

Č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ů

Rozšiřte své dovednosti s Office
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×