Keď používate Microsoft Access, často musíte pracovať s hodnotami, ktoré nie sú priamo vo vašich údajoch. Môžete napríklad vypočítať daň z predaja v objednávke alebo celkovú sumu samotnej objednávky. Tieto hodnoty môžete vypočítať pomocou výrazov. Výrazy môžete použiť po ich zadaní pomocou správnej syntaxe. Syntax je množina pravidiel, na základe ktorých sú slová a symboly vo výraze správne skombinované. V začiatkoch sa môže zdať práca s výrazmi v Accesse zložitá. Všetko však bude jednoduchšie, ak syntaxi výrazov porozumiete a trošku si ich používanie precvičíte.
Obsah tohto článku
- Prehľad výrazov
- Súčasti výrazov
- Objekty, kolekcie a vlastnosti
- Identifikátory
- Funkcie, operátory, konštanty a hodnoty
- Obmedzenie vnárania výrazov vo webovej databáze je 65 úrovní
Prehľad výrazov
Výraz predstavuje kombináciu niektorých alebo všetkých nasledujúcich položiek: vstavané alebo používateľom definované funkcie, identifikátory, operátory, hodnoty a konštanty. Každý výraz sa vyhodnotí ako jedna hodnota.
Nasledujúci výraz napríklad obsahuje bežné súčasti:
=Sum([Purchase Price])*0.08
-
Sum()je vstavaná funkcia -
[Purchase Price]je identifikátor -
*je matematický operátor -
0.08je konštanta
Tento výraz možno v textovom poli v päte formulára alebo zostavy použiť na vypočítanie dane z predaja pre skupinu položiek.
Výrazy môžu byť komplexnejšie alebo jednoduchšie ako v tomto príklade. Tento booleovský výraz sa napríklad skladá len z operátora a konštanty:
>0
Tento výraz vráti:
-
Trueak sa porovnáva s číslom väčším ako 0. -
Falseak sa porovnáva s číslom menším ako 0.
Tento výraz môžete použiť v poli vlastnosti Overovacie pravidlo ovládacieho prvku alebo tabuľky a zabezpečiť, aby sa zadávali len kladné hodnoty. Výrazy sa používajú na mnohých miestach na vykonávanie výpočtov, manipuláciu so znakmi alebo na testovanie údajov. Všetky tabuľky, dotazy, formuláre, zostavy a makrá majú vlastnosti, ktoré akceptujú výraz. Výrazy môžete napríklad použiť vo vlastnostiach Zdroj ovládacieho prvku a Predvolená hodnota pre ovládací prvok. Výrazy môžete tiež použiť v poli vlastnosti Overovacie pravidlo tabuľky.
Súčasti výrazov
Pri vytváraní výrazu kombinujete identifikátory pomocou funkcií, operátorov, konštánt a hodnôt. Každý platný výraz musí obsahovať aspoň jednu funkciu alebo aspoň jeden identifikátor a môže obsahovať aj konštanty alebo operátory. Výraz môžete použiť aj ako súčasť iného výrazu – zvyčajne ako argument funkcie. Nazýva sa to vnorenie výrazu.
Identifikátory Všeobecný tvar je:
[Collection name]![Object name].[Property name]Ak chcete, aby bol identifikátor v kontexte výrazu jedinečný, stačí zadať dostatok častí identifikátora. Nie je nezvyčajné, že identifikátor má tvar
[Object name].Funkcie Všeobecný tvar je:
Function(argument, argument)Jedným z argumentov je zvyčajne identifikátor alebo výraz. Niektoré funkcie argumenty nevyžadujú. Pred použitím konkrétnej funkcie skontrolujte syntax tejto funkcie. Ďalšie informácie nájdete v téme Funkcie (podľa kategórie).
Operátory Všeobecný tvar je:
Identifier operator identifierAko je to podrobne znázornené v sekcii Operátory, pri tomto tvare sa vyskytujú výnimky.
Konštanty Všeobecný tvar je:
Identifier comparison_operator constantHodnoty Hodnoty sa môžu vo výrazoch vyskytovať na viacerých miestach.
Objekty, kolekcie a vlastnosti
Všetky tabuľky, dotazy, formuláre, zostavy a polia v accessovej databáze sa jednotlivo označujú ako objekty. Každý objekt má názov. Niektoré z objektov sú už pomenované, ako napríklad tabuľka Kontakty v databáze vytvorená zo šablóny Kontakty programu Microsoft Office Access. Pri vytváraní nového objektu ho pomenujete.
Množina všetkých súčastí konkrétneho typu objektu sa nazýva kolekcia. Kolekciou je napríklad množina všetkých tabuliek v databáze. Niektoré objekty, ktoré sú súčasťou kolekcie v databáze, môžu byť aj kolekcie obsahujúce iné objekty. Napríklad objekt tabuľky je kolekcia, ktorá obsahuje objekty polí.
Objekty majú vlastnosti, ktoré popisujú a poskytujú možnosti na zmenu charakteristík objektu. Objekt dotazu má napríklad vlastnosť Predvolené zobrazenie, ktoré popisuje a umožňuje spôsob zobrazenia dotazu pri jeho spustení.
Nasledujúci diagram znázorňuje vzťah medzi kolekciami, objektmi a vlastnosťami:
|
3 Vlastnosť 2 Objekt 1 Kolekcia |
|---|
Identifikátory
Ak vo výraze použijete objekt, kolekciu alebo vlastnosť, použitím identifikátora vlastne odkazujete na tento prvok. Identifikátor obsahuje názov prvku, ktorý identifikujete, a tiež názov prvku, ku ktorému patrí. Napríklad identifikátor pre pole obsahuje názov poľa a názov tabuľky, do ktorej dané pole patrí. Príklad takéhoto identifikátora:
[Customers]![BirthDate]
V niektorých prípadoch funguje názov prvku samostatne ako identifikátor. Toto platí, keď je názov prvku v kontexte vytváraného výrazu jedinečný. Zvyšok identifikátora je odvodený z kontextu. Ak napríklad navrhujete dotaz, ktorý používa iba jednu tabuľku, samotné názvy polí budú fungovať ako identifikátory, pretože názvy polí v tabuľke musia byť v danej tabuľke jedinečné. Keďže používate len jednu tabuľku, názov tabuľky je zahrnutý v každom identifikátore, pomocou ktorého v dotaze odkazujete na pole.
V iných prípadoch musíte časti identifikátora slúžiaceho na odkazovanie jasne vymedziť, inak nebude fungovať. Toto platí, ak identifikátor nie je v kontexte výrazu jedinečný. V prípade nejasností musíte jasne vymedziť dostatočný počet častí identifikátora. Len tak môže byť v rámci kontextu jedinečný. Povedzme napríklad, že vytvárate dotaz, ktorý používa tabuľku s názvom Produkty a tabuľku s názvom Objednávky, a obe tabuľky obsahujú pole s názvom IDProduktu. V takom prípade identifikátor, ktorý v dotaze používate na odkazovanie na niektoré z týchto polí s názvom IDProduktu, musia okrem názvu poľa zahŕňať aj názov tabuľky. Napríklad:
[Products]![ProductID]
Operátory identifikátora Existujú tri operátory, ktoré môžete v identifikátore použiť:
- Operátor tresku (
!) - Operátor bodky (
.) - Operátor hranatých zátvoriek (
[ ])
Tieto operátory môžete použiť na ohraničenie jednotlivých častí identifikátora hranatými zátvorkami a ich spájanie pomocou operátora výkričník alebo bodka. Napríklad identifikátor poľa s názvom Priezvisko v tabuľke Zamestnanci možno vyjadriť ako [Employees]![Last Name]. Operátor výkričník informuje Access o tom, že nasleduje objekt patriaci do kolekcie, ktorá predchádza operátoru výkričník. V tomto prípade je [Priezvisko] objekt poľa patriaci do kolekcie [Zamestnanci], ktorá je zároveň objektom tabuľky.
Presnejšie povedané, okolo identifikátora alebo čiastočného identifikátora nemusíte vždy zadávať hranaté zátvorky. Ak sa v identifikátore nenachádza žiadna medzera ani iný špeciálny znak, Access pri čítaní výrazu automaticky k nemu pridá zátvorky. Je však vhodné zadať zátvorky sami, čo vám pomôže vyhnúť sa chybám a tiež funkciám ako vizuálnej pomôcke, že určitá časť výrazu je identifikátorom.
Funkcie, operátory, konštanty a hodnoty
Ak chcete vytvoriť výraz, potrebujete viac než len identifikátory– musíte vykonať nejakú akciu. Tieto akcie vo výraze sa vykonávajú pomocou funkcií, operátorov a konštánt.
Funkcie
Funkcia je postup, ktorý môžete použiť vo výraze. Niektoré funkcie, ako napríklad Date, nevyžadujú žiadny vstup na to, aby fungovali. Väčšina funkcií však vstup nazvaný argumenty vyžaduje.
V príklade na začiatku tohto článku používa funkcia DatePart dva argumenty: argument intervalu s hodnotou "yyyy" a argumentom dátumu s hodnotou [Customers]![BirthDate]. Funkcia DatePart vyžaduje minimálne dva argumenty (interval a dátum), ale akceptovať môže až štyri argumenty.
Nasledujúci zoznam obsahuje niektoré funkcie, ktoré sa vo výrazoch bežne používajú. Kliknite na prepojenie pre každú funkciu a získajte ďalšie informácie o syntaxi, ktorú s danou funkciou používate.
Funkcia Date sa používa na zadanie aktuálneho systémového dátumu do výrazu. Bežne sa používa s funkciou Format a tiež sa používa s identifikátormi polí určenými pre tie polia, ktoré obsahujú údaje o dátume alebo čase.
=Date()Funkcia DatePart sa používa na určenie alebo extrahovanie časti dátumu, zvyčajne dátumu získaného z identifikátora poľa, ale niekedy na hodnotu dátumu, ktorú vráti iná funkcia, napríklad Dátum.
DatePart ( "yyyy", Date())Funkcia DateDiff sa používa na určenie rozdielu medzi dvoma dátumami – zvyčajne medzi dátumom získaným z identifikátora poľa a dátumom získaným pomocou funkcie Date.
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10Funkcia Format slúži na použitie formátu v identifikátore a vo výsledkoch inej funkcie.
Format([Date],"ww")=Format(Now(),"ww")-1Funkcia IIf sa používa na vyhodnotenie výrazu ako true alebo false a potom vráti jednu hodnotu, ak sa výraz vyhodnotí ako true, a inú hodnotu, ak sa výraz vyhodnotí ako nepravda.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")Funkcia InStr sa používa na vyhľadanie pozície znaku alebo reťazca v rámci iného reťazca. Vyhľadávaný reťazec zvyčajne pochádza z identifikátora poľa.
InStr(1,[IPAddress],".")Funkcie Left, Mid a Right sa používajú na extrahovanie znakov z reťazca počnúc znakom nachádzajúcim sa úplne vľavo (Left), konkrétnym umiestnením v strede (Mid) a končiac znakom úplne vpravo (Right). Bežne sa používajú s funkciou InStr. Reťazec, z ktorého sa pomocou týchto funkcií znaky extrahujú, zvyčajne pochádza z identifikátora poľa.
Left([ProductName], 1) Right([AssetCode], 2) Mid([Phone],2,3)
Zoznam funkcií nájdete v téme Funkcie (podľa kategórie).
Operátory
Operátor je slovo alebo symbol, ktorý označuje konkrétny aritmetický alebo logický vzťah medzi ďalšími prvkami výrazu. Operátory môžu byť:
-
Aritmetika, napríklad znamienko plus (
+). -
Porovnanie, napríklad znamienko rovnosti (
=). -
Logická hodnota, napríklad
Not. -
Zreťazenie, napríklad
&. -
Špeciálne, napríklad
Like.
Operátory sa všeobecne používajú na označenie vzťahu medzi dvoma identifikátormi. Nasledujúce tabuľky popisujú operátory, ktoré môžete vo výrazoch v Accesse použiť.
Aritmetické operátory sa používajú na výpočet hodnoty z dvoch alebo viacerých čísel alebo na zmenu znamienka čísla z kladného na záporné.
| Operátor | Účel | Príklad |
|---|---|---|
+ |
Súčet dvoch čísel. | [Medzisúčet]+[Daň z obratu] |
- |
Zistenie rozdielu medzi dvoma číslami alebo určenie zápornej hodnoty čísla. | [Cena]-[Zľava] |
* |
Vynásobenie dvoch čísel. | [Množstvo]*[Cena] |
/ |
Vydelenie prvého čísla druhým číslom. | [Celkový súčetl]/[Počet položiek] |
\ |
Zaokrúhlenie oboch čísel na celé čísla, vydelenie prvého čísla druhým číslom a potom skrátenie výsledku na celé číslo. | [Registrované]\[Miestnosti] |
Mod |
Vydelenie prvého čísla druhým číslom a vrátenie zvyšku. | [Registrované] Mod [Miestnosti] |
^ |
Umocnenie čísla na exponent. | Číslo ^ Exponent |
Porovnanie
Operátory porovnávania sa používajú na porovnanie hodnôt a vrátia výsledok, ktorý má hodnoty True, False alebo Null (neznáma hodnota).
| Operátor | Účel |
|---|---|
< |
Určuje, či je prvá hodnota menšia ako druhá hodnota. |
<= |
Určuje, či je prvá hodnota menšia alebo rovnaká ako druhá hodnota. |
> |
Určuje, či je prvá hodnota väčšia ako druhá hodnota. |
>= |
Určuje, či je prvá hodnota väčšia alebo rovnaká ako druhá hodnota. |
= |
Určuje, či je prvá hodnota rovnaká ako druhá hodnota. |
<> |
Určuje, či je prvá hodnota iná ako druhá hodnota. |
Vo všetkých prípadoch, ak je Nullbuď prvá hodnota, alebo druhá hodnota , výsledok je tiež Null. Keďže Null predstavuje neznámu hodnotu, výsledok porovnania je Null tiež neznámy.
Logické
Logické operátory sa používajú na kombinovanie dvoch hodnôt a vracajú výsledok s hodnotou True, False alebo Null. Logické operátory sa tiež nazývajú booleovské operátory.
| Operátor | Použitie | Popis |
|---|---|---|
And |
Expr1 And Expr2 | Vráti hodnotu True, ak Expr1 a Expr2 majú hodnotu True. |
Or |
Expr1 Or Expr2 | Vráti hodnotu True, ak buď Expr1, alebo Expr2 majú hodnotu True. |
Eqv |
Expr1 Eqv Expr2 | Vráti hodnotu True, ak Expr1 aj Expr2 majú hodnotu True alebo Expr1 aj Expr2 majú hodnotu False. |
Not |
Not Expr | Vráti hodnotu True, ak Expr nemá hodnotu True. |
Xor |
Expr1 Xor Expr2 | Vráti hodnotu True, ak buď Expr1, alebo Expr2 má hodnotu True, nie však oba. |
Operátory reťazenia
Operátory reťazenia sa používajú na kombinovanie dvoch textových hodnôt do jedného reťazca.
| Operátor | Použitie | Popis |
|---|---|---|
& |
string1 & string2 | Spája dva textové reťazce do jedného. |
+ |
string1 + string2 | Spája dva textové reťazce do jedného a povyšuje nulové hodnoty. |
Špeciálne operátory
Špeciálne operátory sa používajú tak, ako je to popísané v nasledujúcej tabuľke.
| Operátor | Popis | Ďalšie informácie |
|---|---|---|
Is Null or Is Not Null |
Určuje, či je hodnota Null alebo Not Null. | |
Like "pattern" |
Zodpovedá hodnotám reťazca pomocou zástupných operátorov a *operátorov ?. |
Operátor Like |
Between val1 And val2 |
Určuje, či sa hodnota čísla alebo dátumu nachádza v rozsahu. | Operátor Between...And |
In(string1,string2...) |
Určuje, či sa hodnota reťazca nachádza v množine hodnôt reťazca. | Operátor In |
Konštanty
Konštanta je známa hodnota, ktorá sa nemení, a ktorú môžete vo výraze použiť. V Accesse existujú štyri bežne používané konštanty:
-
Trueoznačuje niečo, čo je logicky pravdivé. -
Falseoznačuje niečo, čo je logicky nepravdivé. -
Nulloznačuje nedostatok známej hodnoty. -
"" (empty string)označuje hodnotu, o ktorú je známe, že je prázdna.
Konštanty môžete použiť ako argumenty vo funkcii a vo výraze ako súčasť kritéria. Konštantu prázdneho reťazca ("") môžete napríklad použiť ako súčasť kritéria pre stĺpec v dotaze na vyhodnotenie hodnôt polí pre daný stĺpec zadaním nasledujúceho kritéria: <>"" V tomto príklade <> je operátor a "" je konštantou. Ich súčasné použitie naznačuje, že indikátor, na ktorý sa vzťahujú, by sa mal porovnať s prázdnym reťazcom. Výsledný výraz bude mať hodnotu True vtedy, keď je hodnota identifikátora iná než prázdny reťazec.
Pri používaní konštanty Null buďte opatrní. Vo väčšine prípadov Null použitie v spojení s operátorom porovnania spôsobí chybu. Ak chcete porovnať hodnotu Null vo výraze, použite Is Null operátor alebo Is Not Null operátor.
Hodnoty
Vo výrazoch môžete používať explicitné hodnoty, ako je napríklad číslo 1 254 alebo reťazec Zadajte číslo od 1 do 10. Použiť môžete aj numerické hodnoty, ktoré môžu tvoriť rad číslic vrátane podľa potreby znamienka a desatinnej čiarky. Ak číselná hodnota neobsahuje znamienko, Access ju považuje za kladné číslo. Ak chcete, aby bola hodnota záporná, zahrňte znamienko mínus (-). Pre číslo sa môže použiť aj vedecký zápis. V takomto prípade treba použiť znak „E“ alebo „e“ a znamienko exponenta (napríklad 1,0E-6).
Pri použití textových reťazcov je potrebné umiestniť text do úvodzoviek, aby ho Access správne interpretoval. V niektorých prípadoch doplní úvodzovky Access za vás. Ak napríklad zadáte text do výrazu pre overovacie pravidlo alebo kritérium dotazu, Access automaticky uzavrie text do úvodzoviek.
Ak napríklad zadáte text Paris, Access zobrazí vo výraze výraz "Paríž". Ak chcete, aby výraz vytváral reťazec, ktorý je v skutočnosti uzavretý v úvodzovkách, uzavrite vnorený reťazec do jednoduchých (') úvodzoviek alebo do troch množín dvojitých (") úvodzoviek. Napríklad tieto výrazy sú rovnocenné:
Forms![Contacts]![City]. DefaultValue = ' "Paris" '
Forms![Contacts]![City].DefaultValue = " " "Paris" " "
Ak chcete použiť hodnoty dátumu a času, uzavrite hodnoty do znakov mriežky (#). Platnými hodnotami dátumu sú napríklad #3-7-17#, #7-Mar-17# a #Mar-7-2017#. Ak Access narazí na platnú hodnotu dátumu a času označenú znakmi #, automaticky ju spracuje ako hodnotu typu údajov Date/Time.
Obmedzenie vnárania výrazov vo webovej databáze je 65 úrovní
Výrazy vnorené do hĺbky viac ako 65 úrovní nebudú v prehliadači fungovať, preto by ste vo webovej databáze Accessu nemali používať žiadne takéto výrazy. Nezobrazní sa žiadne chybové hlásenie – výraz jednoducho nebude fungovať.
Použitie operátorov &a ANDOR operátorov môže na serveri vytvoriť ďalšie úrovne vnárania, ktoré sa neprejavia v klientovi Accessu. Výraz napríklad "a" & "b" & "c" nie je vnorený v Zostavovači výrazov, ale v SharePointe sa stane concatenate.Db("a", concatenate.Db("b", "c") ). Tento preklad vytvorí jednoúrovňové vnorenie. Používanie mnohých po sebe idúcich &ANDvýrazov alebo OR operátorov v jednom výraze môže spôsobiť, že prekročíte limit 65 vnárania servera, pričom výraz nebude v prehliadači fungovať.
Používanie Zostavovača výrazovÚvodné informácie o výrazochVytváranie výrazovPríklady výrazov