Ak chcete skombinovať hodnoty v dvoch alebo viacerých textových poliach v Access, vytvoríte výraz, ktorý používa operátor ampersand (&). Predpokladajme napríklad, že máte formulár nazvaný Zamestnanci. Do samostatných polí zadáte krstné meno a priezvisko zamestnanca, no chcete, aby sa v hlavičke formulára zobrazovalo celé meno zamestnanca.
Ak chcete zobraziť celé meno, môžete použiť tento výraz:
=[Meno] & " " & [Priezvisko]
Výraz použije operátor & na skombinovanie hodnôt v poliach Meno a Priezvisko. Vo výraze sa tiež použije pár dvojitých horných úvodzoviek (") oddelených znakom medzery, aby sa medzi meno a priezvisko vložila medzera. Ak chcete niečo vložiť medzi dve polia, napríklad medzeru, interpunkčný znak alebo doslovný text, je potrebné ohraničiť túto dodatočnú hodnotu úvodzovkami.
Ako ďalší príklad možno použiť nasledovný výraz a zobraziť priezvisko a krstné meno oddelené čiarkou a medzerou:
=[Priezvisko] & ", " & [Meno]
V tomto prípade výraz vloží čiarku a medzeru, ktoré sú ohraničené v úvodzovkách, medzi polia Priezvisko a Meno.
Nasledovný postup predpokladá, že máte formulár založený na tabuľke a obsahujúci polia nazvané Meno a Priezvisko. V opačnom prípade môžete zmeniť výraz v kroku 6 tak, aby zodpovedal vašim údajom.
Pridanie textového poľa s výrazom pre celé mená
-
Na navigačnej table kliknite pravým tlačidlom myši na formulár alebo zostavu, ktoré chcete zmeniť, a potom v kontextovej ponuke kliknite na položku Návrhové zobrazenie.
-
Na karte Návrh formulára alebo Návrh zostavy kliknite v skupine Ovládacie prvky na položku Textové pole.
-
Presunutím ukazovateľa na formulár alebo zostavu vytvorte textové pole.
-
Pravým tlačidlom myši kliknite na textové pole a v kontextovej ponuke kliknite na položku Vlastnosti.
-
Na hárku vlastností kliknite na kartu Údaje.
-
Zmeňte hodnotu v poli vlastnosti Zdroj ovládacieho prvku na =[Meno] & " " & [Priezvisko].
-
Zavrite hárok vlastností a uložte zmeny.
Niekedy jedno z polí, ktoré chcete skombinovať, nemusí obsahovať hodnotu. Takáto absencia údajov sa nazýva hodnota null. Keď použijete & pre pole bez hodnoty, Access vráti pre toto pole reťazec nulovej dĺžky. Ak napríklad záznam zamestnanca obsahuje len priezvisko, výraz v predchádzajúcom príklade vráti reťazec nulovej dĺžky pre pole Meno, znak medzery a hodnotu v poli Priezvisko.
1. Keďže v poli Meno nie sú žiadne údaje, pred výrazom Sloboda sa nachádza reťazec nulovej dĺžky a medzera.
Keď kombinujete hodnoty z viacerých polí do nového reťazca, možno budete chcieť hodnotu do nového reťazca (napríklad čiarku) zahrnúť len v prípade, že údaje v príslušnom poli existujú. Ak chcete hodnotu zahrnúť podmienene, použite na kombinovanie polí operátor + namiesto operátora &. Predpokladajme napríklad, že máte tabuľku nazvanú Zákazník a že táto tabuľka obsahuje polia nazvané Mesto, Štát a PSČ. Chcete skombinovať hodnoty v týchto poliach pre zostavu, no niektoré záznamy nemajú hodnotu v poli Štát. V takomto prípade budete mať pri skombinovaní polí pomocou operátora & pred PSČ nechcené čiarky.
Ak chcete nechcené čiarky eliminovať, môžete namiesto toho použiť operátor znaku plus (+) tak, ako je to uvedené v nasledovnom príklade:
=([Mesto] & (", " + [Štát]) & " " & [PSČ])
Operátor + kombinuje text rovnakým spôsobom ako operátor &. Operátor + však podporuje aj to, čo sa nazýva rozšírenie hodnoty null. Rozšírenie hodnoty null zaistí, že ak má akýkoľvek komponent výrazu hodnotu null, výsledkom celého výrazu je takisto hodnota null. V predchádzajúcom príklade si pozrite časť výrazu (", " + [Štát]). Keďže sa použil operátor +, výraz, ktorý sa vyhodnocuje v rámci vnútorných zátvoriek, obsahuje čiarku len v prípade, že v poli Štát sa nachádza hodnota. Ak v poli Štát hodnota nie je, uplatní sa rozšírenie hodnoty null a výraz vo vnútorných zátvorkách sa vyhodnotí ako hodnota null, na základe čoho sa čiarka skryje.
1. Záznamy obsahujúce hodnoty pre štáty sa zobrazujú s čiarkou, medzerou a skratkou štátu.
2. Štát pre záznam s hodnotou Houston v poli Mesto nie je špecifikovaný, takže výsledok výrazu je zobrazený bez čiarky, medzery alebo skratky štátu.