Функции за низове и как да ги използвате

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

С низови функции можете да създавате изрази в Access, които управляват текст по различни начини. Например може да искате да покажете само част от сериен номер във формуляр. Или може да се наложи да съедините (съедините) няколко низа, като например фамилно име и собствено име. Ако все още не сте наясно с изразите, вижте "Създаване на израз".

Следва списък на някои от най-често срещаните операции с низове в Access и функциите, които бихте използвали за изпълнението им:

За… Използвайте... Например... Резултати
Връщане на знаци от началото на низ Функция Left =Left([СериенНомер];2) Ако [SerialNumber] е "CD234", резултатът е "CD".
Връщане на знаци от края на низ Функция Right =Right([СериенНомер];3) Ако [SerialNumber] е "CD234", резултатът е "234".
Намиране на позицията на знак в низ Функция InStr =InStr(1;[СобственоИме];"i") Ако [FirstName] е "Colin", резултатът е 4.
Връщане на знаци от средата на низ Функция Mid =Mid([SerialNumber];2;2) Ако [SerialNumber] е "CD234", резултатът е "D2".
Изрязване на водещи или завършващи интервали от низ Функции LTrim, RTrim и Trim =Trim([FirstName]) Ако [FirstName] е " Colin ", резултатът е "Colin".
Съединяване на два низа Оператор със знак плюс (+)* =[СобственоИме] + [ФамилноИме] Ако [СобственоИме] е "Колин", а [ФамилноИме] е Уилкокс, резултатът е "КолинУилкокс"
Съединяване на два низа заедно с интервал между тях Оператор със знак плюс (+)* =[СобственоИме] + " " + [ФамилноИме] Ако [FirstName] е "Colin", а [LastName] е Wilcox, резултатът е "Colin Wilcox"
Смяна на регистъра на низа на главни или малки букви UCase функция или LCase функция =UCase([СобственоИме]) Ако [FirstName] е "Colin", резултатът е "COLIN".
Определяне на дължината на низ Функция Len =Len([FirstName]) Ако [FirstName] е "Colin", резултатът е 5.

* Добре, значи това не е функция, а оператор. Това обаче е най-бързият начин за свързване на низове. В настолна база данни можете също да използвате оператора амперсанд (&) за конкатенция.

В Access има още много функции, свързани с текст. Добър начин да научите повече за тях е да отворите конструктора на изрази и да прегледате списъците с функции. Конструкторът на изрази е наличен почти навсякъде, където искате да създадете израз – обикновено има малък бутон за компилация , който изглежда така: Изображение на бутон

За да демонстрираме конструктора на изрази, нека го отворим от свойството "Източник за контролата " във формуляр или изглед. Използвайте една от процедурите по-долу в зависимост от това дали използвате настолна база данни, или уеб приложение на Access.

Показване на конструктора на изрази в настолна база данни

  1. Отворете настолна база данни (.accdb).

  2. Натиснете F11, за да отворите навигационния екран, ако не е отворен.

  3. Ако вече имате формуляр, щракнете с десния бутон върху него в навигационния екран и щракнете върху "Изглед на оформление". Ако нямате формуляр, с който да работите, щракнете върху Създаване>на формуляр.

  4. Щракнете с десния бутон върху текстово поле на формуляра и щракнете върху "Свойства".

  5. In the Property Sheet , click>All Control Source and click the Build button image on right side of the Control Source property box.

    Бутонът ''Компилация'' в списъка със свойства.

  6. Под Елементи на изрази разгънете възела Функции и щракнете върху Вградени функции.

  7. Под "Категории изрази" щракнете върху "Текст".

  8. Под "Стойности на изрази" щракнете върху различните функции и прочетете кратките описания в края на конструктора на изрази.

    Забележка

    Не всички от тези функции са налични във всички контексти; Access филтрира списъка автоматично в зависимост от това кои от тях ще свършат работа във всеки контекст.

Комбиниране на текстови функции за по-голяма гъвкавост

Някои низови функции имат числови аргументи, които в някои случаи трябва да изчислявате всеки път, когато извиквате функцията. Например функцията Left приема низ и число, като в =Left(SerialNumber, 2). Това е чудесно, ако знаете, че винаги се нуждаете от левите два знака, но какво ще стане, ако броят на знаците, от които се нуждаете, варира за отделните елементи? Вместо просто да "кодирате твърдо" броя на знаците, можете да въведете друга функция, която го изчислява.

Ето пример за поредни номера, всеки от които има тире някъде в низа. Позицията на тирето обаче е различна:

Сериен номер
3928-29993
23-9923
333-53234
3399940-444

Ако искате да покажете числата само отляво на тирето, трябва всеки път да правите изчисление, за да разберете къде се намира тирето. Едната възможност е да направите нещо подобно:

=Left([SerialNumber];InStr(1;[SerialNumber];"-")-1)

Вместо да въвеждаме число като втори аргумент на функцията Left, включихме функцията InStr, която връща позицията на тирето в серийния номер. Извадете 1 от тази стойност и ще получите точния брой знаци, които функцията Left да върне. На пръв поглед изглежда малко сложно, но с малко експериментиране можете да комбинирате два или повече израза, за да получите желаните резултати.