С функциите за низове можете да създавате изрази в Access, които манипулират текст по различни начини. Например може да искате да покажете само част от пореден номер във формуляр. Или може да се наложи да съедините (конкатенирате) няколко низа, като например фамилно име и собствено име. Ако все още не сте разбираеми за изразите, вижте Създаване на израз.
Ето списък на някои от най-често срещаните операции с низове в Access и функциите, които бихте използвали, за да ги изпълните:
За… |
Използвайте... |
Например... |
Резултати |
---|---|---|---|
Връщане на знаци от началото на низ |
=Left([Сериен номер];2) |
Ако [SerialNumber] е "CD234", резултатът е "CD". |
|
Връщане на знаци от края на низ |
=Right([Сериен номер];3) |
Ако [SerialNumber] е "CD234", резултатът е "234". |
|
Намиране на позицията на знак в низ |
=InStr(1;[СобственоИме];"i") |
Ако [СобственоИме] е "Колин", резултатът е 4. |
|
Връщане на знаци от средата на низ |
=Mid([Сериен номер];2;2) |
Ако [SerialNumber] е "CD234", резултатът е "D2". |
|
Изрязване на водещи или завършващи интервали от низ |
=Trim([СобственоИме]) |
Ако [FirstName] е " Колин ", резултатът е "Колин". |
|
Съединяване на два низа заедно |
Оператор знак плюс (+) * |
=[СобственоИме] + [ФамилноИме] |
Ако [СобственоИме] е "Колин" и [ФамилноИме] е Уилкокс, резултатът е "ColinWilcox" |
Съединяване на два низа заедно с интервал между тях |
Оператор знак плюс (+) * |
=[СобственоИме] + " " + [ФамилноИме] |
Ако [СобственоИме] е "Колин" и [ФамилноИме] е Уилкокс, резултатът е "Колин Уилкокс" |
Промяна на регистъра на низ на главни или малки букви |
=UCase([СобственоИме]) |
Ако [СобственоИме] е "Колин", резултатът е "КОЛИН". |
|
Определяне на дължината на низ |
=Len([СобственоИме]) |
Ако [СобственоИме] е "Колин", резултатът е 5. |
* Добре, значи не е функция, а оператор. Това обаче е най-бързият начин да обедините низове. В настолна база данни можете също да използвате оператора амперсанд (&) за конкатенация.
Има още много функции, свързани с текст, в Access. Добър начин да научите повече за тях е да отворите конструктора на изрази и да прегледате списъците с функции. Конструкторът на изрази е наличен почти навсякъде, където искате да създадете израз – обикновено има малък бутон Изграждане , който изглежда по следния начин:
За да демонстрирате конструктора на изрази, нека го отворим от свойството Източник за контролата във формуляр или изглед. Използвайте една от процедурите по-долу в зависимост от това дали използвате настолна база данни, или уеб приложение на Access.
Показване на конструктора на изрази в настолна база данни
-
Отворете настолна база данни (.accdb).
-
Натиснете F11, за да отворите навигационния екран, ако все още не е отворен.
-
Ако вече имате наличен формуляр, щракнете с десния бутон върху него в навигационния екран и щракнете върху Изглед на оформление. Ако нямате формуляр, с който да работите, щракнете върху Създаване на > формуляр.
-
Щракнете с десния бутон върху текстово поле във формуляра и щракнете върху Свойства.
-
В списъка със свойства щракнете върху Всички > Източник за контролата и щракнете върху бутона Изграждане , от дясната страна на полето на свойството Източник за контролата .
-
Под Елементи на изрази разгънете възела Функции и щракнете върху Вградени функции.
-
Под Категории изрази щракнете върху Текст.
-
Под Стойности на изрази щракнете върху различните функции и прочетете кратките описания в долната част на конструктора на изрази.
Забележка: Не всички от тези функции са налични във всички контексти; Access филтрира списъка автоматично в зависимост от това кои от тях работят във всеки контекст.
Комбиниране на текстови функции за по-голяма гъвкавост
Някои функции за низове имат числови аргументи, които в някои случаи трябва да изчислявате всеки път, когато извиквате функцията. Например функцията Left взема низ и число, като в =Left(SerialNumber, 2). Това е чудесно, ако знаете, че винаги ви трябват левите два знака, но какво става, ако броят на знаците, които ви трябват, се различава в различните елементи? Вместо просто "твърдо кодиране" броят на знаците, можете да въведете друга функция, която я изчислява.
Ето пример за поредни номера, всеки от които има тире някъде в низа. Позицията на тирето обаче варира:
Сериен номер |
---|
3928-29993 |
23-9923 |
333-53234 |
3399940-444 |
Ако искате да показвате само числата отляво на тирето, трябва да извършвате изчисление всеки път, за да разберете къде е тирето. Една от опциите е да направите нещо подобно:
=Left([Пореден номер];InStr(1;[Сериен номер];"-")-1)
Вместо да въвеждаме число като втори аргумент на функцията Left, включихме функцията InStr, която връща позицията на тирето в поредния номер. Извадете 1 от тази стойност и получавате правилния брой знаци, които да върне функцията Left. Първоначално изглежда малко сложно, но с малко експериментиране можете да комбинирате два или повече израза, за да получите желаните резултати.