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 |
=Left([Sériové číslo],2) |
Pokud [SerialNumber] je "CD234", výsledkem je "CD". |
|
Vrácení znaků z konce řetězce |
=Right([SerialNumber;3) |
Pokud [SerialNumber] je "CD234", výsledek je "234". |
|
Vyhledání pozice znaku v řetězci |
=InStr(1;[Jméno],"i") |
Pokud [FirstName] je "Colin", výsledek je 4. |
|
Vrácení znaků ze středu řetězce |
=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 |
=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 |
=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 > zdroj ovládacího prvku a klikněte na tlačítko Sestavit 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.