Pomocí řetězcových funkcí můžete v Accessu vytvářet výrazy, které manipulují s textem různými způsoby. Můžete například chtít zobrazit ve formuláři jenom část sériového čísla. Nebo možná budete muset spojit (zřetězit) několik řetězců, jako je příjmení a křestní jméno. Pokud ještě nemáte přehled o výrazech, přečtěte si téma Vytvoření výrazu.
Tady je seznam některých běžných operací s řetězci v Accessu a funkcí, které byste k jejich provedení použili:
| Požadovaná akce | Použijte... | Například... | Výsledky |
|---|---|---|---|
| Vrácení znaků od začátku řetězce | Levá funkce | =Left([Sériové číslo],2) | Pokud [SerialNumber] je "CD234", výsledkem je "CD". |
| Vrácení znaků z konce řetězce | Pravá funkce | =Right([SerialNumber;3) | Pokud [SerialNumber] je "CD234", výsledek je "234". |
| Vyhledání pozice znaku v řetězci | InStr | =InStr(1;[Jméno],"i") | Pokud [FirstName] je "Colin", výsledek je 4. |
| Vrácení znaků ze středu řetězce | Funkce Mid | =Mid([Sériové číslo];2;2) | Pokud [SerialNumber] je "CD234", výsledek je "D2". |
| Oříznutí úvodních nebo koncových mezer z řetězce | Funkce LTrim, RTrim a Trim | =Trim([FirstName]) | Pokud [FirstName] je " Colin ", výsledek je "Colin". |
| Spojení dvou řetězců | Operátor znaménka plus (+) | =[Jméno] + [Příjmení] | Pokud [FirstName] je "Colin" a [LastName] je Wilcox, výsledek je "ColinWilcox" |
| Spojení dvou řetězců s mezerou mezi nimi | Operátor znaménka plus (+) | =[Jméno] + " " + [Příjmení] | Pokud [FirstName] je "Colin" a [LastName] je Wilcox, výsledek je "Colin Wilcox". |
| Změna velkých a malých písmen řetězce na velká nebo malá písmena | Funkce UCase nebo LCase | =UCase([Jméno]) | Pokud [FirstName] je "Colin", výsledek je "COLIN". |
| Určení délky řetězce | Funkce Len | =Len([Jméno]) | Pokud je [FirstName] "Colin", výsledek je 5. |
* Dobře, takže to není funkce, je to operátor. Je to ale nejrychlejší způsob, jak spojit řetězce dohromady. V desktopové databázi můžete k zřetězení použít také operátor ampersand (&).
V Accessu je mnoho dalších funkcí souvisejících s textem. Dobrým způsobem, jak se o nich dozvědět víc, je otevřít Tvůrce výrazů a procházet seznamy funkcí. Tvůrce výrazů je k dispozici téměř všude, kde chcete vytvořit výraz – obvykle existuje malé tlačítko Sestavit , které vypadá takto:
Chcete-li předvést Tvůrce výrazů, otevřete ho z vlastnosti Zdroj ovládacího prvku ve formuláři nebo zobrazení. Použijte jeden z následujících postupů v závislosti na tom, jestli používáte desktopovou databázi nebo webovou aplikaci pro Access.
Zobrazení Tvůrce výrazů v desktopové databázi
Otevřete desktopovou databázi (.accdb).
Stisknutím klávesy F11 otevřete navigační podokno, pokud ještě není otevřené.
Pokud už máte formulář k dispozici, klikněte na něj v navigačním podokně pravým tlačítkem a klikněte na Zobrazení rozložení. Pokud nemáte formulář, se kterým byste mohli pracovat, klikněte na Vytvořit>formulář.
Klikněte pravým tlačítkem na textové pole ve formuláři a klikněte na Vlastnosti.
V seznamu vlastností klikněte na Všechny>zdroje ovládacích prvků a klikněte na
Sestavit tlačítko na pravé straně pole vlastnosti Zdroj ovládacího prvku.
V části Prvky výrazu rozbalte uzel Funkce a klikněte na Předdefinované funkce.
V části Kategorie výrazů klikněte na Text.
V části Hodnoty výrazů klikněte na různé funkce a přečtěte si krátké popisy v dolní části Tvůrce výrazů.
Poznámka
Ne všechny tyto funkce jsou dostupné ve všech kontextech. Access filtruje seznam automaticky v závislosti na tom, které z nich v každém kontextu fungují.
Kombinování textových funkcí pro větší flexibilitu
Některé řetězcové funkce mají číselné argumenty, které v některých případech potřebujete vypočítat při každém volání funkce. Funkce Left například přebírá řetězec a číslo, jako v =Left(SerialNumber; 2). To je skvělé, pokud víte, že vždy potřebujete levé dva znaky, ale co když se počet znaků, které potřebujete, liší u položky k položce? Místo pouhého "pevného kódování" počtu znaků můžete zadat jinou funkci, která ho vypočítá.
Tady je příklad sériových čísel, která mají spojovník někde v řetězci. Pozice spojovníku se ale liší:
| Sériové číslo |
|---|
| 3928-29993 |
| 23-9923 |
| 333-53234 |
| 3399940-444 |
Pokud chcete zobrazit jenom čísla nalevo od spojovníku, musíte pokaždé provést výpočet, abyste zjistili, kde je spojovník. Jednou z možností je udělat něco takového:
=Left([Sériové číslo],InStr(1;[Sériové číslo],"-")-1)
Místo zadávání čísla jako druhého argumentu funkce Left jsme připojili funkci InStr, která vrátí pozici spojovníku v sériovém čísle. Odečtěte od této hodnoty hodnotu 1 a získáte správný počet znaků pro funkci Left, která se má vrátit. Zpočátku to vypadá trochu komplikovaně, ale s trochou experimentování můžete zkombinovat dva nebo více výrazů, abyste získali požadované výsledky.