Tento článok uvádza príklady výrazov v Accesse. Výraz kombinuje matematické alebo logické operátory, konštanty, funkcie, polia tabuliek, ovládacie prvky a vlastnosti do jednej hodnoty. Výrazy v Accesse možno použiť na výpočet hodnôt, overovanie údajov a nastavenie predvolených hodnôt.
Obsah tohto článku
Formuláre a zostavy
Všetky výrazy formulárov a zostáv
Dotazy a filtre
Všetky výrazy dotazov a filtrov
Tabuľky
| Predvolené hodnoty poľa | Overovacie pravidlá poľa |
|---|
Makrá
Formuláre a zostavy
V tabuľkách v tejto časti sú uvedené výrazy, ktoré vypočítavajú hodnotu v ovládacom prvku formulára alebo zostavy. Ak chcete vytvoriť vypočítavaný ovládací prvok, zadajte výraz do ControlSource vlastnosti ovládacieho prvku namiesto do poľa tabuľky alebo 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 spájanie textových reťazcov, vstavané funkcie na prácu s textom alebo iné formy vypočítavaného ovládacieho prvku.
| 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 (uzavretého v úvodzovkách) a poľa Priezvisko. |
=Left([ProductName], 1) |
Funkcia Left sa používa na zobrazenie prvého znaku hodnoty v poli alebo ovládacom prvku s názvom ProductName. |
=Right([AssetCode], 2) |
Používa funkciu Right na zobrazenie posledných dvoch znakov hodnoty v poli alebo ovládacom prvku s názvom AssetCode. |
=Trim([Address]) |
Funkcia Trim sa používa na zobrazenie hodnoty ovládacieho prvku Address po odstránení úvodných a koncových medzier. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Používa funkciu IIf na zobrazenie hodnôt ovládacích prvkov and CityPostalCode , ak má ovládací prvok Region hodnotu null. V opačnom prípade sa zobrazia hodnoty City, Regiona PostalCode ovládacie prvky oddelené medzerami. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
Operátor a rozšírenie hodnoty null sa používajú + na zobrazenie hodnôt City ovládacích prvkov and PostalCode , ak je hodnota v poli alebo ovládacom prvku Region null. V opačnom prípade sa zobrazia hodnoty City, Region, a polia PostalCode alebo ovládacie prvky oddelené medzerami. Rozšírenie hodnoty null znamená, že ak má ľubovoľná časť výrazu hodnotu null, má hodnotu null celý výraz. Operátor + podporuje rozšírenie hodnoty null, ale & operátor nie. |
Hlavičky a päty
Použite Page vlastnosti and Pages na zobrazenie alebo vytlačenie čísel strán formulárov alebo zostáv. Tieto vlastnosti sú k dispozícii iba počas tlače alebo ukážky pred tlačou, preto sa nezobrazujú na hárku vlastností formulára alebo zostavy. Zvyčajne umiestnite textové pole do hlavičky alebo päty formulára alebo zostavy a potom použijete výraz podobný výrazom zobrazeným 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 vráti výraz =[RequiredDate] - 2 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
Ak vo výraze používate aritmetický operátor (+, -, *, alebo /) a jeden z ovládacích prvkov má hodnotu null, výsledkom celého výrazu je hodnota null. Toto sa nazýva rozšírenie hodnoty null. Ak ovládací prvok môže mať hodnotu null, rozšíreniu hodnoty null sa môžete vyhnúť tak, že použijete funkciu Nz , ktorá skonvertuje hodnotu null na nulu. Napríklad použite =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 delením hodnoty Sales ovládacieho prvku súčtom všetkých hodnôt v ovládacom prvku Sales . Ak nastavíte vlastnosť Format ovládacieho prvku na Percenthodnotu , nezahrňte *100 ich do výrazu. |
Ď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() |
Používa funkciu Date na zobrazenie aktuálneho dátumu v podobe mm-dd-yy, kde mm je mesiac (1 až 12), dd deň (1 až 31) a yy posledné dve číslice 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 predstavujú 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. Funkcia IIf prejde do troch argumentov: Prvý argument je výraz, ktorý musí vrátiť hodnotu Alebo TrueFalse . 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 je Yeshodnota ovládacieho prvku Potvrdené, v opačnom prípade 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. Operátor môžete Between použiť napríklad na poskytnutie počiatočného a koncového dátumu a obmedziť výsledky dotazu na objednávky, ktoré boli dodané medzi zadanými dátumami.
Nasledujúce časti obsahujú príklady výrazov, ktoré možno použiť v dotazoch.
Textové operácie v dotazoch
Vo výrazoch v nasledovnej tabuľke sa používajú operátory & and + na kombinovanie textových reťazcov, vstavané funkcie na akcie s textovými reťazcami alebo iné činnosti s textom, výsledkom ktorých je vytvorenie vypočítavané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 dotazoch
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 , ktoré sa potom FreightPercentagezobrazí percento dopravných poplatkov v každom medzisúčte. V tomto výraze sa funkcia Sum používa na sčítanie hodnôt v Freight poli a potom sa tieto súčty delia súčtom hodnôt v poli.Subtotal Ak chcete použiť tento výraz, skonvertujte výberový dotaz na dotaz na súčty. Je potrebné použiť riadok Súčet v mriežke návrhu a nastaviť bunku Súčet pre toto pole na Expressionmožnosť . Ďalšie informácie o vytváraní dotazov Súčty nájdete v téme Sčítanie údajov pomocou dotazu. Ak nastavíte Format vlastnosť poľa na Percent, nezahrňuj *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 v dotazoch
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 dotazoch
Výrazy v nasledujúcej tabuľke používajú funkcie SQL, ktoré agregujú alebo sumarizujú údaje. Často sa stretávate s Sumfunkciami ako , Count, ktoré Avg sa označujú ako agregačné funkcie.
Okrem agregačných funkcií Access poskytuje aj doménové agregačné funkcie, ktoré umožňujú selektívne sčítať alebo spočítať hodnoty. Môžete napríklad spočítať iba hodnoty v určitom rozsahu alebo vyhľadať hodnotu z inej tabuľky. Doménové agregačné funkcie zahŕňajú DSum, DCount a DAvg.
Ak chcete vypočítať celkové hodnoty, často je potrebné vytvoriť dotaz na súčty. Ak chcete napríklad sumarizovať podľa skupiny, použite dotaz na súčty. Ak chcete zapnúť dotaz na súčty z mriežky návrhu dotazu, vyberte v ponuke Zobraziť položku Súčty.
| 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 FreightPercentage, ktoré potom vypočíta percento dopravných poplatkov v každom medzisúčte vydelením súčtu hodnôt v Freight poli súčtom hodnôt v Subtotal poli. V tomto príklade je funkcia použitá Sum . Tento výraz sa musí používať spolu s dotazom na súčty. Ak nastavíte Format vlastnosť poľa na Percent, nezahrňuj *100. Ďalšie informácie o vytváraní dotazov Súčty nájdete v téme 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" |
Operátor sa používa na zobrazenie Or objednávok dodaných do Bratislavy alebo do Košíc. |
| KrajinaOblasťDodania | In("Canada", "UK") |
Operátor sa používa In na zobrazenie objednávok dodaných do Kanady alebo do Veľkej Británie. |
| KrajinaOblasťDodania | Not "USA" |
Operátor sa používa 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 Not operátor 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 začínajú písmenami N do 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 na 99. |
| NázovDodávky | 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 Between...And operátor 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# |
Operátor sa používa Between...Andna zobrazenie objednávok dodaných najskôr 5. januára 2017 a najneskôr 10. januára 2017. |
| PožadovanýDátum | Between Date( ) And DateAdd("M", 3, Date( )) |
Používa operátor na zobrazenie Between...And objednávok požadovaných v rozsahu od dnešného dátumu do 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
Tento Like operátor poskytuje vysokú mieru flexibility v prípade, keď sa pokúšate porovnať zhodu riadkov vytvorených podľa určitého vzoru, pretože je možné použiť Like zástupné znaky a zadefinovať vzory, na základe ktorých sa má Access porovnať.
* 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. Výraz Like "S*" napríklad môžete použiť na vyhľadanie všetkých názvov začínajúcich písmenom S. Ďalšie informácie nájdete v článku Operátor Like (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 použite v riadku Update To 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) (SQL) je jazyk dotazov, ktorý sa používa 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, vyberte v ponuke Zobraziť položku ZobrazenieSQL. Nasledujúca tabuľka obsahuje vzorové príkazy SQL, ktoré používajú 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. Access potom poskytne túto hodnotu pri vytvorení nového záznamu obsahujúceho dané pole alebo pri vytvorení objektu obsahujúceho tento ovládací prvok. Vo výrazoch v nasledujúcej tabuľke sú uvedené vzorové 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 má 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 ValidationRule vlastnosť poľa alebo ovládacieho prvku. Mali by ste zvážiť aj nastavenie ValidationText vlastnosti obsahujúcej text, ktorý sa v programe Access zobrazí pri narušení overovacieho pravidla. Ak vlastnosť ValidationText nenastavíte, Access zobrazí predvolené chybové hlásenie.
V príkladoch v nasledujúcej tabuľke sú znázornené výrazy overovacích pravidiel pre vlastnosť ValidationRule a priradený text pre danú ValidationText vlastnosť.
| 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 môžete použiť na definovanie podmienky v bloku If:
[Counter]=10
Rovnako ako vlastnosť ValidationRule , výraz v bloku If je podmienený výraz. Musí sa vyriešiť buď alebo TrueFalse. 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ť. |