Tento článok obsahuje mnoho príkladov výrazov v Access. Výraz predstavuje kombináciu matematických alebo logických operátorov, konštánt, funkcií a polí tabuliek, ovládacích prvkov a vlastností, ktorá sa vyhodnotí do jednej hodnoty. Výrazy môžete použiť v Access na výpočet hodnôt, overenie údajov a nastavenie predvolenej hodnoty.
Obsah tohto článku
Formuláre a zostavy
V tabuľkách v tejto časti sú uvedené príklady výrazov vypočítavajúcich hodnotu v ovládacom prvku, ktorý sa nachádza vo formulári alebo zostave. Ak chcete vytvoriť vypočítavaný ovládací prvok, zadávate výraz do vlastnosti ovládacieho prvku ZdrojOvládaciehoPrvku a nezadávate ho do poľa tabuľky ani dotazu.
Poznámka Výrazy môžete vo formulári alebo zostave použiť aj pri zvýraznení údajov pomocou podmieneného formátovania.
Operácie s textom
Vo výrazoch v nasledovnej tabuľke sa používajú operátory & (ampersand) a + (plus) na kombinovanie textových reťazcov, vstavané funkcie na manipuláciu s textovým reťazcom alebo na iné činnosti s textom, výsledkom ktorých je vypočítavaný ovládací prvok.
Výraz |
Výsledok |
---|---|
="N/A" |
Zobrazí hodnotu N/A. |
=[FirstName] & " " & [LastName] |
Zobrazí hodnoty, ktoré sa nachádzajú v poliach tabuľky s názvom Meno a Priezvisko. V tomto príklade sa operátor & používa na kombinovanie poľa Meno, znaku medzery (medzi dvomi úvodzovkami) a poľa Priezvisko. |
=Left([ProductName], 1) |
Používa funkciu Left na zobrazenie prvého znaku hodnoty poľa alebo ovládacieho prvku s názvom NázovProduktu. |
=Right([AssetCode], 2) |
Používa funkciu Right na zobrazenie posledných 2 znakov hodnoty v poli alebo ovládacom prvku s názvom KódAktíva. |
=Trim([Address]) |
Používa funkciu Trim na zobrazenie hodnoty ovládacieho prvku Adresa (odstránia sa úvodné a koncové medzery). |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Funkcia IIf sa používa na zobrazenie hodnôt ovládacích prvkov Mesto a PSČ v prípade, ak je hodnota ovládacieho prvku Oblasť null. V opačnom prípade sa zobrazia hodnoty ovládacích prvkov Mesto, Oblasť a PSČ oddelené medzerami. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
Operátor + a rozšírenie hodnoty null sa používajú na zobrazenie hodnôt ovládacích prvkov Mesto a PSČ, ak je hodnota v poli alebo ovládacom prvku Oblasť null. V opačnom prípade sa zobrazia hodnoty polí alebo ovládacích prvkov Mesto, Oblasť a PSČ oddelené medzerami. Rozšírenie hodnoty null znamená, že ak má ľubovoľná súčasť výrazu hodnotu null, bude mať hodnotu null aj celý výraz. Operátor + podporuje rozšírenie hodnoty null, operátor & rozšírenie hodnoty null nepodporuje. |
Hlavičky a päty
Vlastnosti Strana a Strán sa používajú na zobrazenie alebo vytlačenie čísel strán formulárov alebo zostáv. Vlastnosti Strana a Strán sú k dispozícii iba počas tlače alebo zobrazenia ukážky, t. j. nezobrazujú sa na hárku vlastností formulára alebo zostavy. Tieto vlastnosti sa spravidla používajú tak, že do hlavičky alebo päty formulára alebo zostavy vložíte textové pole a potom použijete výraz (napríklad výrazy uvedené v nasledujúcej tabuľke).
Ďalšie informácie o používaní hlavičiek a piat vo formulároch a zostavách nájdete v článku Vkladanie čísel strán do formulára alebo zostavy.
Výraz |
Výsledok |
---|---|
=[Page] |
1 |
="Page " & [Page] |
Strana 1 |
="Page " & [Page] & " of " & [Pages] |
Strana 1 z 3 |
=[Page] & " of " & [Pages] & " Pages" |
1 z 3 strán |
=[Page] & "/" & [Pages] & " Pages" |
1/3 strán |
=[Country/region] & " - " & [Page] |
UK - 1 |
=Format([Page], "000") |
001 |
="Printed on: " & Date() |
Vytlačené: 31. 12. 17 |
Aritmetické operácie
Výrazy možno používať na sčítanie, odpočítanie, násobenie a delenie hodnôt v dvoch alebo viacerých poliach alebo ovládacích prvkoch. Výrazy možno taktiež používať na uskutočnenie aritmetických operácií s dátumami. Predpokladajme, že máte pole tabuľky Dátum a čas s názvom PožadovanýDátum. V poli alebo ovládacom prvku viazanom na pole výraz =[RequiredDate] - 2 vráti hodnotu dátumu a času rovnajúcu sa dvom dňom pred aktuálnymi hodnotami v poli PožadovanýDátum.
Výraz |
Výsledok |
---|---|
=[Subtotal]+[Freight] |
Súčet hodnôt polí alebo ovládacích prvkov Medzisúčet a Dopravné. |
=[RequiredDate]-[ShippedDate] |
Interval medzi dátumovými hodnotami polí alebo ovládacích prvkov PožadovanýDátum a DátumDodania. |
=[Price]*1.06 |
Súčin hodnôt poľa alebo ovládacieho prvku Cena a 1,06 (k hodnote Cena sa pripočíta 6 percent). |
=[Quantity]*[Price] |
Súčin hodnôt polí alebo ovládacích prvkov Množstvo a Cena. |
=[EmployeeTotal]/[CountryRegionTotal] |
Podiel hodnôt polí alebo ovládacích prvkov ZamestnanecSpolu a KrajinaOblasťSpolu. |
Poznámka Keď vo výraze používate aritmetický operátor (+, -, * a /) a hodnota jedného z ovládacích prvkov vo výraze je null, výsledok celého výrazu bude tiež null. Tento krok sa označuje ako rozšírenie hodnoty null. Ak niektoré záznamy v ovládacích prvkoch, ktoré používate vo výraze, majú hodnotu null, rozšíreniu hodnoty null sa môžete vyhnúť konverziou hodnôt null na nulu pomocou funkcie Nz, napríklad =Nz([Subtotal])+Nz([Freight]).
Hodnoty v iných ovládacích prvkoch
Niekedy je potrebné použiť hodnotu, ktorá sa nachádza na inom mieste, napríklad v poli alebo v ovládacom prvku v inom formulári alebo zostave. Ak chcete vrátiť hodnotu z iného poľa alebo ovládacieho prvku, môžete použiť výraz.
Príklady výrazov, ktoré možno použiť vo vypočítavaných ovládacích prvkoch vo formulároch, sú uvedené v nasledujúcej tabuľke.
Výraz |
Výsledok |
---|---|
=Forms![Orders]![OrderID] |
Hodnota ovládacieho prvku IDobjednávky vo formulári Objednávky. |
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] |
Hodnota ovládacieho prvku MedzisúčetObjednávky v podformulári s názvom Podformulár objednávok vo formulári Objednávky. |
=Forms![Orders]![Orders Subform]![ProductID].Column(2) |
Hodnota tretieho stĺpca v zozname IDproduktu – ide o pole so zoznamom s viacerými stĺpcami, ktoré sa nachádza v podformulári s názvom Podformulár objednávok vo formulári Objednávky. (Nezabúdajte, že hodnota 0 odkazuje na prvý stĺpec, hodnota 1 odkazuje na druhý stĺpec atď.) |
=Forms![Orders]![Orders Subform]![Price] * 1.06 |
Súčin hodnoty ovládacieho prvku Cena v podformulári s názvom Podformulár objednávok vo formulári Objednávky a hodnoty 1,06 (k hodnote ovládacieho prvku Cena sa pridá 6 percent). |
=Parent![OrderID] |
Hodnota ovládacieho prvku IDobjednávky v hlavnom alebo nadradenom formulári aktuálneho podformulára. |
Vo výrazoch v nasledujúcej tabuľke sú zobrazené niektoré spôsoby použitia vypočítavaných ovládacích prvkov v zostavách. Výrazy odkazujú na vlastnosť Zostava.
Výraz |
Výsledok |
---|---|
=Report![Invoice]![OrderID] |
Hodnota ovládacieho prvku s názvom IDobjednávky v zostave s názvom Faktúra. |
=Report![Summary]![Summary Subreport]![SalesTotal] |
Hodnota ovládacieho prvku PredajSpolu v čiastkovej zostave s názvom Čiastková zostava súhrnu v zostave Súhrn. |
=Parent![OrderID] |
Hodnota ovládacieho prvku IDobjednávky v hlavnej alebo nadradenej zostave aktuálnej čiastkovej zostavy. |
Počítanie, sčítanie a výpočet priemerných hodnôt
Na výpočet hodnôt pre jedno alebo viacero polí alebo ovládacích prvkov možno použiť funkciu s názvom agregačná funkcia. Môžete napríklad vypočítať súčet skupiny pre pätu skupiny v zostave alebo medzisúčet objednávky pre riadkové položky vo formulári. Taktiež môžete spočítať počet položiek v jednom alebo viacerých poliach, alebo vypočítať priemernú hodnotu.
Vo výrazoch v nasledovnej tabuľke sú uvedené niektoré spôsoby použitia funkcií Avg, Count a Sum.
Výraz |
Popis |
---|---|
=Avg([Freight]) |
Používa funkciu Avg na zobrazenie priemerných hodnôt poľa tabuľky alebo ovládacieho prvku s názvom Dopravné. |
=Count([OrderID]) |
Používa funkciu Count na zobrazenie počtu záznamov v ovládacom prvku IDObjednávky. |
=Sum([Sales]) |
Používa funkciu Sum na zobrazenie súčtu hodnôt ovládacieho prvku Predaj. |
=Sum([Quantity]*[Price]) |
Používa funkciu Sum na zobrazenie súčtu súčinov hodnôt v ovládacích prvkoch Množstvo a Cena. |
=[Sales]/Sum([Sales])*100 |
Zobrazí sa percento predaja určené delením hodnoty ovládacieho prvku Predaj súčtom všetkých hodnôt ovládacieho prvku Predaj. Ak nastavíte vlastnosť Formát tohto ovládacieho prvku na hodnotu Percento, do výrazu nezahŕňajte hodnotu *100. |
Ďalšie informácie o používaní agregačných funkcií a počítaní súčtov hodnôt v poliach a stĺpcoch nájdete v článkoch Sčítanie údajov pomocou dotazu, Spočítanie údajov pomocou dotazu, Spočítanie riadkov v údajovom hárku a Zobrazenie súčtov stĺpcov v údajovom hárku.
Agregačné funkcie SQL
Typ funkcie, ktorá sa označuje ako SQL alebo doménová agregačná funkcia, sa používa vtedy, keď potrebujete selektívne sčítať alebo spočítať hodnoty. Doména sa skladá z jedného alebo viacerých polí v jednej alebo viacerých tabuľkách, alebo z jedného alebo viacerých ovládacích prvkov v jednom alebo viacerých formulároch alebo zostavách. Môžete napríklad porovnávať hodnoty v poli tabuľky s hodnotami v ovládacom prvku formulára.
Výraz |
Popis |
---|---|
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) |
Funkcia DLookup sa používa na vrátenie hodnoty poľa MenoKontaktnejOsoby v tabuľke Dodávatelia, kde hodnota poľa IDdodávateľa v tabuľke zodpovedá hodnote ovládacieho prvku IDdodávateľa vo formulári Dodávatelia. |
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) |
Funkcia DLookup sa používa na vrátenie hodnoty poľa MenoKontaktnejOsoby v tabuľke Dodávatelia, kde hodnota poľa IDdodávateľa v tabuľke zodpovedá hodnote ovládacieho prvku IDdodávateľa vo formulári Noví dodávatelia. |
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") |
Funkcia DSum sa používa na vrátenie celkového súčtu hodnôt v poli ObjednanéMnožstvo, kde má pole IDzákazníka hodnotu RATTC. |
=DCount("[Retired]","[Assets]","[Retired]=Yes") |
Funkcia DCount sa používa na vrátenie počtu hodnôt Áno v poli Vyradené (pole typu Yes/No) v tabuľke s názvom Aktíva. |
Operácie s dátumami
Sledovanie dátumov a časov patrí medzi základné činnosti s databázou. Môžete napríklad vypočítať, koľko dní uplynulo od dátumu fakturácie a sledovať tak stav svojich pohľadávok. Rôzne možnosti formátovania dátumu a času sú uvedené v nasledujúcej tabuľke.
Výraz |
Popis |
---|---|
=Date() |
Funkcia Date sa používa na zobrazenie aktuálneho dátumu vo formáte mm-dd-yy, kde mm označuje mesiac (1 až 12), dd označuje deň (1 až 31) a yy predstavuje posledné dve číslice označenia roka (1980 až 2099). |
=Format(Now(), "ww") |
Používa funkciu Format na zobrazenie čísla týždňa v roku pre aktuálny dátum, kde ww predstavuje týždne 1 až 53. |
=DatePart("yyyy", [OrderDate]) |
Používa funkciu DatePart na zobrazenie roka v štvormiestnom formáte z hodnoty ovládacieho prvku DátumObjednávky. |
=DateAdd("y", -10, [PromisedDate]) |
Používa funkciu DateAdd na zobrazenie dátumu, ktorý nastáva 10 dní pred hodnotou ovládacieho prvku DátumPrísľubu. |
=DateDiff("d", [OrderDate], [ShippedDate]) |
Používa funkciu DateDiff na zobrazenie rozdielu v počte dní medzi hodnotami ovládacích prvkov DátumObjednávky a DátumDodania. |
=[InvoiceDate] + 30 |
Aritmetické operácie s dátumami sa používajú na výpočet dátumu pripadajúceho na 30. deň po dátume uvedenom v poli alebo ovládacom prvku DátumFaktúry. |
Podmienky len dvoch hodnôt
Vo vzorových výrazoch v nasledujúcej tabuľke sa používa funkcia IIf na vrátenie jednej z dvoch možných hodnôt. V rámci funkcie IIf sa zadávajú tri argumenty: prvým argumentom je výraz, ktorý musí vrátiť hodnotu Truealebo False. Druhým argumentom je hodnota, ktorá sa vráti v prípade, ak je výraz pravdivý, a tretí argument je hodnota, ktorá sa vráti, ak je výraz nepravdivý.
Výraz |
Popis |
---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
Funkcia IIf (Immediate If) slúži na zobrazenie hlásenia Objednávka potvrdená, ak má ovládací prvok Potvrdené hodnotu Yes. V opačnom prípade sa zobrazí hlásenie "Order Not Confirmed.". |
=IIf(IsNull([Country/region]), " ", [Country]) |
Funkcie IIf a IsNull sa používajú na zobrazenie prázdneho reťazca, ak je hodnota ovládacieho prvku Krajina/oblasť null. V opačnom prípade sa zobrazí hodnota ovládacieho prvku Krajina/oblasť. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Funkcie IIf a IsNull sa používajú na zobrazenie hodnôt ovládacích prvkov Mesto a PSČ, ak je hodnota ovládacieho prvku Oblasť null. V opačnom prípade sa zobrazia hodnoty polí alebo ovládacích prvkov Mesto, Oblasť a PSČ. |
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Funkcie IIf a IsNull sa používajú na zobrazenie hlásenia Skontrolujte, či nechýba dátum, ak je výsledok odčítania hodnôt poľa DátumDodania od hodnoty poľa PožadovanýDátum null. V opačnom prípade sa zobrazí interval medzi dátumovými hodnotami ovládacích prvkov PožadovanýDátum a DátumDodania. |
Dotazy a filtre
Táto časť obsahuje príklady výrazov používaných na vytvorenie výpočtového poľa v dotaze alebo na zadanie kritérií do dotazu. Výpočtové pole predstavuje stĺpec v dotaze, ktorý je výsledkom výrazu. Môžete napríklad vypočítať hodnotu, kombinovať textové hodnoty, ako napríklad mená a priezviská, alebo formátovať časť dátumu.
Použite kritériá v dotaze na obmedzenie záznamov, s ktorými pracujete. Pomocou operátora Between môžete napríklad uviesť počiatočný a koncový dátum a obmedziť výsledky dotazu na príkazy, ktoré boli dodané medzi zadanými dátumami.
Ďalej nájdete príkladov výrazov, ktoré môžete použiť v dotazoch.
Operácie s textom
Vo výrazoch v nasledovnej tabuľke sa používajú operátory & a + na spájanie textových reťazcov, vstavané funkcie na akcie s textovými reťazcami alebo iné činnosti s textom, výsledkom ktorých je vytvorenie výpočtového poľa.
Výraz |
Popis |
---|---|
FullName: [FirstName] & " " & [LastName] |
Slúži na vytvorenie poľa s názvom CeléMeno, v ktorom sa zobrazujú hodnoty v poliach Meno a Priezvisko oddelené medzerou. |
Address2: [City] & " " & [Region] & " " & [PostalCode] |
Slúži na vytvorenie poľa s názvom Adresa2, v ktorom sa zobrazujú hodnoty v poliach Mesto, Oblasť a PSČ oddelené medzerami. |
ProductInitial: Left([ProductName], 1) |
Slúži na vytvorenie poľa s názvom ProductInitial a potom použije funkciu Left, ktorá v poli ProductInitial zobrazí prvý znak hodnoty v poli NázovProduktu. |
TypeCode: Right([AssetCode], 2) |
Slúži na vytvorenie poľa s názvom TypeCode a potom používa funkciu Right na zobrazenie posledných dvoch znakov hodnôt v poli KódAktíva. |
AreaCode: Mid([Phone],2,3) |
Slúži na vytvorenie poľa s názvom AreaCode a potom používa funkciu Mid na zobrazenie troch znakov počnúc druhým znakom hodnoty v poli Telefón. |
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 |
Slúži na pomenovanie vypočítavaného poľa ExtendedPrice a používa funkciu CCur na výpočet celkového súčtu položiek s použitím zľavy. |
Aritmetické operácie
Výrazy možno používať na sčítanie, odpočítanie, násobenie a delenie hodnôt v dvoch alebo viacerých poliach alebo ovládacích prvkoch. Môžete tiež vykonávať aritmetické operácie s dátumami. Predpokladajme napríklad, že máte pole Dátum a čas s názvom PožadovanýDátum. Výraz =[RequiredDate] - 2 vráti hodnotu dátumu a času rovnajúcu sa dvom dňom pred hodnotou v poli PožadovanýDátum.
Výraz |
Popis |
---|---|
PrimeFreight: [Freight] * 1.1 |
Slúži na vytvorenie poľa s názvom HlavnéDopravné a potom v poli zobrazí dopravné poplatky zvýšené o 10 percent. |
OrderAmount: [Quantity] * [UnitPrice] |
Slúži na vytvorenie poľa s názvom SumaObjednávky a zobrazenie súčinu hodnôt v poliach Množstvo a JednotkováCena. |
LeadTime: [RequiredDate] - [ShippedDate] |
Slúži na vytvorenie poľa s názvom DodaciaLehota a zobrazenie rozdielu hodnôt v poliach PožadovanýDátum a DátumDodania. |
TotalStock: [UnitsInStock]+[UnitsOnOrder] |
Slúži na vytvorenie poľa s názvom ZásobySpolu a zobrazenie súčtu hodnôt v poliach JednotkyNaSklade a ObjednanéJednotky. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Slúži na vytvorenie poľa s názvom DopravnéPercento a zobrazenie percenta dopravných poplatkov v každom medzisúčte. V tomto výraze sa funkcia Sum používa na sčítanie hodnôt v poli Dopravné a potom sa tieto súčty delia súčtom hodnôt v poli Medzisúčet. Ak chcete použiť tento výraz, je nutné skonvertovať výberový dotaz na dotaz na súčty, pretože budete potrebovať riadok Súčet v mriežke návrhu a bunku Súčet pre toto pole je nutné nastaviť na hodnotu Výraz. Ďalšie informácie o vytváraní dotazov na súčty nájdete v článku Sčítanie údajov pomocou dotazu. Ak nastavíte vlastnosť Formát tohto poľa na hodnotu Percento, nezahŕňajte do výrazu hodnotu *100. |
Ďalšie informácie o používaní agregačných funkcií a počítaní súčtov hodnôt v poliach a stĺpcoch nájdete v článkoch Sčítanie údajov pomocou dotazu, Spočítanie údajov pomocou dotazu, Spočítanie riadkov v údajovom hárku a Zobrazenie súčtov stĺpcov v údajovom hárku.
Operácie s dátumami
Takmer všetky databázy môžu uchovávať a sledovať dátumy a časy. V programe Access pracujete s dátumami a časmi nastavením dátumových a časových polí v tabuľkách na typ údajov Date/Time. V programe Access je možné vykonávať aritmetické výpočty s dátumami (môžete napríklad vypočítať, koľko dní uplynulo od dátumu fakturácie, a sledovať tak stav svojich pohľadávok).
Výraz |
Popis |
---|---|
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) |
Slúži na vytvorenie poľa s názvom LagTime a potom používa funkciu DateDiff na zobrazenie počtu dní medzi dátumom objednávky a dátumom dodania. |
YearHired: DatePart("yyyy",[HireDate]) |
Slúži na vytvorenie poľa s názvom RokNástupu a potom použije funkciu DatePart na zobrazenie roka nástupu každého zamestnanca. |
MinusThirty: Date( )- 30 |
Slúži na vytvorenie poľa s názvom MinusThirty a potom použije funkciu Date na zobrazenie dátumu, ktorý je o 30 dní skorší než aktuálny dátum. |
Agregačné funkcie SQL
Výrazy v nasledujúcej tabuľke používajú funkcie SQL (Structured Query Language) na agregáciu alebo sumarizáciu údajov. Tieto funkcie (napríklad Sum, Count a Avg) sa často označujú ako agregačné funkcie.
Okrem agregačných funkcií Access poskytuje aj „doménové“ agregačné funkcie, ktoré sa používajú na selektívne sčítanie alebo spočítanie hodnôt. Môžete napríklad spočítať iba hodnoty v určitom rozsahu alebo vyhľadať hodnotu z inej tabuľky. Skupina doménových agregačných funkcií obsahuje funkciu DSum, funkciu DCount a funkciu DAvg.
Ak chcete vypočítať celkové hodnoty, je často potrebné vytvoriť dotaz na súčty. Dotaz na súčty potrebujete napríklad vtedy, keď chcete sumarizovať podľa skupiny. Ak chcete zapnúť dotaz na súčty z mriežky návrhu dotazu, kliknite na položku Súčty v ponuke Zobraziť.
Výraz |
Popis |
---|---|
RowCount: Count(*) |
Slúži na vytvorenie poľa s názvom RowCount a potom používa funkciu Count na spočítanie počtu záznamov v dotaze vrátane záznamov s poľami, ktoré sú null (prázdne). |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Slúži na vytvorenie poľa s názvom DopravnéPercento a na výpočet percenta dopravných poplatkov v každom medzisúčte ako podiel súčtu hodnôt v poli Dopravné a súčtu hodnôt v poli Medzisúčet. (V tomto príklade sa používa funkcia Sum.) Tento výraz sa musí používať spolu s dotazom na súčty. Ak nastavíte vlastnosť Formát tohto poľa na hodnotu Percento, nezahŕňajte do výrazu hodnotu *100. Ďalšie informácie o vytváraní dotazov Súčty nájdete v článku Sčítanie údajov pomocou dotazu. |
AverageFreight: DAvg("[Freight]", "[Orders]") |
Slúži na vytvorenie poľa s názvom PriemernéDopravné a potom pomocou funkcie DAvg vypočíta priemerné dopravné poplatky vo všetkých objednávkach v kombinácii s dotazom na súčty. |
Polia s chýbajúcimi údajmi
Výrazy uvedené na tomto mieste slúžia na prácu s poľami s potenciálne chýbajúcimi informáciami, ako sú napríklad polia obsahujúce hodnoty null (neznáme alebo nedefinované) hodnoty. S hodnotami null sa môžete stretnúť často, ako napríklad v prípade neznámej ceny nového produktu alebo hodnoty, ktorú spolupracovník zabudol pridať do objednávky. Možnosť vyhľadania a spracovania hodnôt null môže byť kľúčovou súčasťou databázových operácií a vo výrazoch v nasledujúcej tabuľke sú uvedené niektoré bežné spôsoby spracovania hodnôt null.
Výraz |
Popis |
---|---|
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) |
Slúži na vytvorenie poľa s názvom AktuálnaKrajinaOblasť a potom použije funkciu IIf a IsNull na zobrazenie prázdneho reťazca v tomto poli v prípade, ak pole KrajinaOblasť obsahuje hodnotu null. V opačnom prípade sa zobrazí obsah poľa KrajinaOblasť. |
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Slúži na vytvorenie poľa s názvom DodaciaLehota a potom použije funkciu IIf a IsNull na zobrazenie hlásenia Skontrolujte, či nechýba dátum, ak je hodnota v poli PožadovanýDátum alebo DátumDodania null. V opačnom prípade sa zobrazí rozdiel dátumov. |
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) |
Slúži na vytvorenie poľa s názvom SixMonthSales a potom zobrazí súčet hodnôt v poliach PredajZa1Štvrťrok a PredajZa2Štvrťrok pomocou funkcie Nz, ktorá slúži na konverziu všetkých hodnôt null na nulu. |
Vypočítavané polia s poddotazmi
Na vytvorenie výpočtového poľa je možné použiť vnorený dotaz, ktorý sa označuje aj ako poddotaz. Výraz v nasledujúcej tabuľke je príkladom výpočtového poľa, ktoré je výsledkom poddotazu.
Výraz |
Popis |
---|---|
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) |
Slúži na vytvorenie poľa s názvom Kat a potom zobrazí položku NázovKategórie, ak je hodnota v poli IDkategórie v tabuľke Kategórie rovnaká ako hodnota v poli IDkategórie v tabuľke Produkty. |
Porovnanie textových hodnôt
Vo vzorových výrazoch v tejto tabuľke sú uvedené kritériá, ktoré porovnávajú zhodu celých textových hodnôt alebo ich častí.
Pole |
Výraz |
Popis |
---|---|---|
MestoDodania |
"London" |
Slúži na zobrazenie objednávok dodaných do Bratislavy. |
MestoDodania |
"London" Or "Hedge End" |
Používa operátor Or na zobrazenie objednávok dodaných do Bratislavy alebo do Košíc. |
KrajinaOblasťDodania |
In("Canada", "UK") |
Používa operátor In na zobrazenie objednávok dodaných do Kanady alebo do Veľkej Británie. |
KrajinaOblasťDodania |
Not "USA" |
Používa operátor Not na zobrazenie objednávok doručených do iných krajín alebo oblastí než do USA. |
NázovProduktu |
Not Like "C*" |
Používa operátor Not a zástupný znak * na zobrazenie produktov, ktorých názvy sa nezačínajú písmenom C. |
NázovSpoločnosti |
>="N" |
Slúži na zobrazenie objednávok doručených spoločnostiam, ktorých názvy sa začínajú písmenom N až Z. |
KódProduktu |
Right([ProductCode], 2)="99" |
Používa funkciu Right na zobrazenie objednávok s hodnotami poľa KódProduktu, ktoré sa končia číslom 99. |
MenoDodania |
Like "S*" |
Slúži na zobrazenie objednávok doručených zákazníkom, ktorých mená sa začínajú písmenom S. |
Porovnanie kritérií dátumu
Vo výrazoch v nasledujúcej tabuľke je predvedené používanie dátumov a súvisiacich funkcií vo výrazoch kritérií. Ďalšie informácie o zadávaní a používaní dátumových hodnôt nájdete v článku Formátovanie poľa dátumu a času.
Pole |
Výraz |
Popis |
---|---|---|
DátumOdoslania |
#2/2/2017# |
Slúži na zobrazenie objednávok dodaných 2. februára 2017. |
DátumOdoslania |
Date() |
Slúži na zobrazenie objednávok doručených dnes. |
PožadovanýDátum |
Between Date( ) And DateAdd("m", 3, Date( )) |
Používa operátor Between...And a funkcie DateAdd a Date na zobrazenie objednávok požadovaných v rozsahu od dnešného dátumu do troch mesiacov od dnešného dátumu. |
DátumObjednávky |
< Date( ) - 30 |
Používa funkciu Date na zobrazenie objednávok starších ako 30 dní. |
DátumObjednávky |
Year([OrderDate])=2017 |
Používa funkciu Year na zobrazenie objednávok s dátumami objednávky spadajúcimi do roka 2017. |
DátumObjednávky |
DatePart("q", [OrderDate])=4 |
Používa funkciu DatePart na zobrazenie objednávok za štvrtý kalendárny štvrťrok. |
DátumObjednávky |
DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 |
Používa funkcie DateSerial, Year a Month na zobrazenie objednávok za posledný deň každého mesiaca. |
DátumObjednávky |
Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) |
Používa funkcie Year a Month a operátor And na zobrazenie objednávok za aktuálny rok a mesiac. |
DátumOdoslania |
Between #1/5/2017# And #1/10/2017# |
Používa operátor Between...And na zobrazenie objednávok dodaných v období medzi 5. januárom 2017 a 10. januárom 2017. |
PožadovanýDátum |
Between Date( ) And DateAdd("M", 3, Date( )) |
Používa operátor Between...And na zobrazenie objednávok požadovaných medzi dnešným dátumom a obdobím troch mesiacov od dnešného dátumu. |
DátumNarodenia |
Month([BirthDate])=Month(Date()) |
Používa funkcie Month a Date na zobrazenie zamestnancov, ktorí majú tento mesiac narodeniny. |
Vyhľadanie chýbajúcich údajov
Výrazy v nasledujúcej tabuľke pracujú s poľami s potenciálne chýbajúcimi informáciami, ako sú polia obsahujúce hodnotu null alebo reťazec s nulovou dĺžkou. Hodnota null označuje neprítomnosť informácií a nepredstavuje nulu a ani žiadnu inú hodnotu. V programe Access existuje podpora pre koncepciu chýbajúcich informácií, pretože táto koncepcia je pre integritu databázy kľúčová. V bežnom živote sa často stáva, že informácie nie sú k dispozícii, aj keď niekedy iba dočasne (napríklad v prípade ceny nového produktu, ktorá ešte nie je stanovená). V databáze, do ktorej sa premieta jednotka z reálneho sveta (ako napríklad obchodná organizácia), preto musí byť k dispozícii možnosť zaznamenať informáciu ako chýbajúcu. Pomocou funkcie IsNull môžete určiť, či pole alebo ovládací prvok obsahuje hodnotu null, a funkciu Nz môžete použiť na konverziu hodnoty null na nulu.
Pole |
Výraz |
Popis |
---|---|---|
RegiónDodania |
Is Null |
Slúži na zobrazenie objednávok zákazníkov, ktorí majú v poli OblasťDodávky hodnotu null (chýbajúcu hodnotu). |
RegiónDodania |
Is Not Null |
Slúži na zobrazenie objednávok zákazníkov, ktorí majú v poli OblasťDodávky a určitú hodnotu. |
Fax |
"" |
Slúži na zobrazenie objednávok zákazníkov, ktorí nemajú fax. Títo zákazníci majú v poli Fax namiesto hodnoty null zadanú hodnotu reťazca s nulovou dĺžkou. |
Porovnanie vzorov záznamov s operátorom Like
Operátor Like vám poskytuje vysokú mieru flexibility v prípade, keď sa pokúšate porovnať zhodu riadkov vytvorených podľa určitého vzoru, pretože operátor Like je možné použiť so zástupnými znakmi a zadefinovať vzory, na základe ktorých sa v programe Access má vykonať porovnanie. Zástupný znak * (hviezdička) napríklad zodpovedá sekvencii znakov ľubovoľného typu a zjednodušuje vyhľadávanie všetkých názvov začínajúcich písmenom. Napríklad môžete použiť výraz Like "S*" na vyhľadanie všetkých názvov začínajúcich sa písmenom S. Ďalšie informácie nájdete v článku operátor Like.
Pole |
Výraz |
Popis |
---|---|---|
MenoDodania |
Like "S*" |
Slúži na vyhľadanie všetkých záznamov v poli NázovDodávky, ktoré sa začínajú písmenom S. |
NázovDodávky |
Like "*Imports" |
Slúži na vyhľadanie všetkých záznamov v poli NázovDodávky, ktoré sa končia slovom „Importy“. |
MenoDodania |
Like "[A-D]*" |
Slúži na vyhľadanie všetkých záznamov v poli NázovDodávky, ktoré sa začínajú písmenami A, B, C alebo D. |
MenoDodania |
Like "*ar*" |
Slúži na vyhľadanie všetkých záznamov v poli NázovDodávky, ktoré obsahujú postupnosť písmen „ar“. |
NázovDodávky |
Like "Maison Dewe?" |
Slúži na vyhľadanie všetkých záznamov v poli NázovDodávky, ktoré v prvej časti hodnoty obsahujú výraz „Maison“ a reťazec s piatimi písmenami, v ktorom sú prvé štyri písmená „Dewe“ a posledné písmeno je neznáme. |
NázovDodávky |
Not Like "A*" |
Slúži na vyhľadanie všetkých záznamov v poli NázovDodávky, ktoré sa nezačínajú písmenom A. |
Porovnanie riadkov s agregačnými funkciami SQL
SQL alebo doménová agregačná funkcia sa používa vtedy, keď potrebujete selektívne sčítať, spočítať alebo vypočítať priemerné hodnoty. Je možné, že budete chcieť spočítať iba tie hodnoty, ktoré patria do určitého rozsahu alebo sa vyhodnotia ako Áno. Inokedy zas môžete chcieť vyhľadať hodnotu z inej tabuľky a zobraziť ju. Vzorové výrazy v nasledujúcej tabuľke používajú doménové agregačné funkcie na výpočet množiny hodnôt a výsledky používajú ako kritériá dotazu.
Pole |
Výraz |
Popis |
---|---|---|
Dopravné |
> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) |
Funkcie DStDev a DAvg sa používajú na zobrazenie všetkých objednávok, pri ktorých dopravné náklady presiahli priemer plus štandardnú odchýlku dopravných nákladov. |
Množstvo |
> DAvg("[Quantity]", "[Order Details]") |
Funkcia DAvg sa používa na zobrazenie produktov objednaných v množstve, ktoré je väčšie než priemerné objednávané množstvo. |
Porovnanie polí s poddotazmi
Poddotaz, ktorý sa označuje aj ako vnorený dotaz, sa používa na výpočet hodnôt používaných ako kritérium. Vo vzorových výrazoch v nasledujúcej tabuľke sa porovnáva zhoda riadkov na základe výsledkov vrátených poddotazom.
Pole |
Výraz |
Zobrazí sa |
---|---|---|
JednotkováCena |
(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") |
Produkty, ktorých cena je rovnaká ako cena anízového sirupu. |
JednotkováCena |
>(SELECT AVG([UnitPrice]) FROM [Products]) |
Produkty, ktorých jednotková cena presahuje priemer. |
Mzda |
> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) |
Mzda každého obchodného zástupcu, ktorá je vyššia než mzda zamestnancov v pozícii „Manažér“ alebo „Viceprezident“. |
CelkováČiastkaObjednávky: [JednotkováCena] * [Množstvo] |
> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) |
Objednávky s celkovými čiastkami, ktoré sú vyššie než priemerná hodnota objednávky. |
Aktualizačné dotazy
Aktualizačný dotaz sa používa na úpravu údajov v jednom alebo viacerých poliach existujúcich v databáze. Môžete napríklad nahradiť hodnoty alebo ich úplne odstrániť. V tejto tabuľke sú uvedené niektoré spôsoby použitia výrazov v aktualizačných dotazoch. Tieto výrazy sa používajú v riadku Aktualizovať na v mriežke návrhu dotazu pre pole, ktoré chcete aktualizovať.
Ďalšie informácie o vytváraní aktualizačných dotazov nájdete v článku Vytvorenie a spustenie aktualizačného dotazu.
Pole |
Výraz |
Výsledok |
---|---|---|
Nadpis |
"Salesperson" |
Zmení textovú hodnotu na hodnotu Predajca. |
ZačiatokProjektu |
#8/10/17# |
Zmení hodnotu dátumu na 10. august 2017. |
Vyradené |
Yes |
Zmení hodnotu Nie v poli typu Yes/No na hodnotu Áno. |
ČísloSúčasti |
"PN" & [PartNumber] |
Pridá reťazec „PN“ na začiatok každého konkrétneho čísla súčasti. |
SúčetPoložiekRiadka |
[UnitPrice] * [Quantity] |
Vypočíta súčin hodnôt JednotkováCena a Množstvo. |
Dopravné |
[Freight] * 1.5 |
Zvýši dopravné poplatky o 50 percent. |
Predaj |
DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) |
Ak sa hodnoty poľa IDproduktu v aktuálnej tabuľke zhodujú s hodnotami poľa IDproduktu v tabuľke Podrobnosti objednávky, súčty predaja sa aktualizujú podľa súčinu hodnôt v poliach Množstvo a JednotkováCena. |
PSČDodania |
Right([ShipPostalCode], 5) |
Skráti reťazec odstránením znakov v ľavej časti a ponechá len posledných päť znakov. |
JednotkováCena |
Nz([UnitPrice]) |
Zmení hodnotu null (nedefinovanú alebo neznámu hodnotu) v poli JednotkováCena na číslo nula (0). |
Príkazy SQL
Jazyk SQL (Structured Query Language) je jazyk dotazov, ktoré sa používajú v programe Access. Každý dotaz vytvorený v návrhovom zobrazení dotazu možno vyjadriť aj pomocou jazyka SQL. Ak chcete zobraziť príkaz SQL pre ľubovoľný dotaz, kliknite na položku Zobrazenie SQL v ponuke Zobraziť. Nasledujúca tabuľka uvádza vzorové príkazy SQL, ktoré obsahujú výraz.
Príkaz SQL používajúci výraz |
Výsledok |
---|---|
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; |
Zobrazí hodnoty v poliach Meno a Priezvisko zamestnancov s priezviskom Porubiak. |
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; |
Zobrazí hodnoty v poliach IDproduktu a NázovProduktu v tabuľke Produkty pre záznamy, v ktorých sa hodnota poľa IDkategórie zhoduje s hodnotou poľa IDkategórie zadanou v otvorenom formulári Nové produkty. |
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; |
Vypočíta priemernú navýšenú cenu objednávok, ktorých hodnota v poli NavýšenáCena presahuje hodnotu 1 000, a zobrazí ju v poli s názvom Priemerná navýšená cena. |
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; |
V poli s názvom PočetIdentifikáciíProduktu sa zobrazí celkový počet produktov v kategóriách s viac než 10 produktmi. |
Výrazy tabuľky
Medzi dva najbežnejšie spôsoby použitia výrazov v tabuľkách patrí priradenie predvolenej hodnoty a vytvorenie overovacieho pravidla.
Predvolené hodnoty poľa
Keď vytvárate návrh databázy, je možné, že budete chcieť priradiť poľu alebo ovládaciemu prvku predvolenú hodnotu. Ak sa potom v programe Access vytvorí nový záznam obsahujúci toto pole alebo objekt obsahujúci tento ovládací prvok, priradí sa k nemu táto predvolená hodnota. Výrazy v nasledujúcej tabuľke predstavujú predvolené hodnoty poľa alebo ovládacieho prvku. Ak je ovládací prvok viazaný na pole v tabuľke a pole obsahuje predvolenú hodnotu, predvolená hodnota ovládacieho prvku bude mať prednosť.
Pole |
Výraz |
Predvolená hodnota poľa |
---|---|---|
Quantity |
1 |
1 |
Oblasť |
"MT" |
MT |
Oblasť |
"New York, N.Y." |
Nitra (Nezabúdajte, že ak hodnota obsahuje interpunkčné znamienka, musíte ju uzavrieť do úvodzoviek.) |
Fax |
"" |
Reťazec s nulovou dĺžkou poukazuje na to, že na základe predvoleného nastavenia by toto pole malo byť prázdne a nemalo by obsahovať hodnotu null. |
Dátum objednávky |
Date( ) |
Dnešný dátum |
TermínDokončenia |
Date() + 60 |
Dnešný dátum plus 60 dní |
Overovacie pravidlá poľa
Pomocou výrazu je možné vytvoriť overovacie pravidlo pre pole alebo ovládací prvok. Toto pravidlo sa potom v programe Access uplatňuje pri zadávaní údajov do poľa alebo ovládacieho prvku. Ak chcete vytvoriť overovacie pravidlo, upravte vlastnosť OverovaciePravidlo poľa alebo ovládacieho prvku. Mali by ste zvážiť aj nastavenie vlastnosti OverovacíText obsahujúcej text, ktorý sa v programe Access zobrazí pri narušení overovacieho pravidla. Ak nenastavíte vlastnosť OverovacíText, v programe Access sa zobrazí predvolené chybové hlásenie.
Výrazy overovacieho pravidla pre vlastnosť OverovaciePravidlo a súvisiaci text pre vlastnosť OverovacíText sú uvedené v príkladoch v nasledujúcej tabuľke.
Vlastnosť OverovaciePravidlo |
Vlastnosť OverovacíText |
---|---|
<> 0 |
Zadajte hodnotu inú ako nula. |
0 Or > 100 |
Hodnota musí byť 0 alebo väčšia ako 100. |
Like "K???" |
Hodnota musí mať štyri znaky a musí sa začínať písmenom K. |
< #1/1/2017# |
Zadajte dátum skorší ako 1. január 2017. |
>= #1/1/2017# And < #1/1/2008# |
Dátum musí byť v roku 2017. |
Ďalšie informácie o overovaní údajov nájdete v článku Vytvorenie overovacieho pravidla na overenie údajov v poli.
Výrazy makra
V niektorých prípadoch môžete chcieť vykonávať akciu alebo sériu akcií v makre iba vtedy, keď sa splní konkrétna podmienka. Predpokladajme napríklad, že chcete, aby sa akcia použila iba v prípade, že má textové pole Počítadlo hodnotu 10. Výraz sa používa na definovanie podmienky v bloku If:
[Counter]=10
Rovnako ako pri vlastnosti OverovaciePraviť , aj výraz v bloku If je podmienený výraz. Jeho výsledkom musí byť hodnota True alebo False. Akcia sa vykoná iba v prípade, ak je podmienka splnená.
Výraz na vykonanie akcie |
If |
---|---|
[City]="Paris" |
Prešov predstavuje hodnotu poľa Mesto vo formulári, z ktorého je spustené makro. |
DCount("[OrderID]", "Orders") > 35 |
Pole IDobjednávky v tabuľke Objednávky obsahuje viac ako 35 položiek. |
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 |
V tabuľke Podrobnosti objednávky sa nachádzajú najmenej tri položky, ktorých hodnota poľa IDobjednávky v tabuľke zodpovedá hodnote poľa IDobjednávky vo formulári Objednávky. |
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# |
Hodnota poľa DátumDodania vo formulári, z ktorého sa makro spúšťa, nie je skoršia než 2. február 2017 ani neskoršia než 2. marec 2017. |
Forms![Products]![UnitsInStock] < 5 |
Hodnota poľa JednotkyNaSklade vo formulári Produkty je menšia než 5. |
IsNull([FirstName]) |
Hodnota v poli Meno vo formulári, z ktorého sa spúšťa makro, je null (nemá žiadnu hodnotu). Tento výraz je rovnocenný s výrazom [Meno] Is Null. |
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 |
Hodnota poľa KrajinaOblasť vo formulári, z ktorého sa spúšťa makro, je UK a hodnota v poli ObjednávkySpolu vo formulári PredajSpolu je väčšia ako 100. |
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 |
Hodnota poľa KrajinaOblasť vo formulári, z ktorého sa spúšťa makro, je Francúzsko, Taliansko alebo Španielsko a dĺžka hodnoty PSČ nie je 5 znakov. |
MsgBox("Confirm changes?",1)=1 |
Kliknite na položku OK v dialógovom okne, ktoré zobrazí funkcia MsgBox. Ak v tomto dialógovom okne kliknete na položku Zrušiť, program Access bude akciu ignorovať. |