Если требуется объединить значения в двух или более текстовых полях в Access, создается выражение, использующее оператор амперсанд (&). Предположим, что у вас есть форма "Сотрудники". вы вводите в разные поля имя и фамилию каждого сотрудника, но хотите отображать полное имя сотрудника в заголовке формы.
Для этого используйте следующее выражение:
=[Имя] & " " & [Фамилия]
Выражение с оператором & объединяет значения из полей "Имя" и "Фамилия". В выражении также присутствует пара двойных кавычек (") с пробелом между ними, чтобы разделить пробелом имя и фамилию. Если вы хотите вставить что-то между двумя полями, например пробел, знаки препинания или текст, это дополнительное вставляемое значение необходимо заключить в кавычки.
В качестве еще одного примера рассмотрим следующее выражение, где имя и фамилия разделяются запятой и пробелом:
=[Имя] & ", " & [Фамилия]
В этом случае выражение вставляет между именем и фамилией запятую с пробелом, заключенные в кавычки.
В следующей процедуре предполагается, что у вас есть форма, которая основана на таблице с полями "Имя" и "Фамилия". Или же вы можете изменить выражение на шаге 6, чтобы оно соответствовало вашим данным.
Добавление текстового поля с выражением для полного имени
-
В области навигации щелкните правой кнопкой мыши форму или отчет, которые вы хотите изменить, и выберите в контекстном меню команду Конструктор.
-
На вкладке Конструктор формы или Конструктор отчетов в группе Элементы управления щелкните Текстовое поле.
-
Перетащите указатель в форме или отчете, чтобы создать текстовое поле.
-
Щелкните правой кнопкой мыши текстовое поле и выберите в контекстном меню пункт Свойства.
-
В области свойств откройте вкладку Данные.
-
Измените значение свойства Данные на =[Имя] & " " & [Фамилия].
-
Закройте область свойств и сохраните изменения.
Иногда одно из полей, которые требуется объединить, может не содержать значения. Это отсутствие данных называется значением NULL. При использовании оператора & для поля, которое не имеет значения, Access возвращает пустая строка для этого поля. Например, если запись сотрудника имеет только фамилию, выражение в предыдущем примере возвращает строку нулевой длины для поля FirstName, пробел и значение в поле LastName.
1. Так как в поле "Имя" нет данных, значению "Гладких" предшествуют строка нулевой длины и пробел.
При объединении значений из нескольких полей в новой строке желательно включать значение в новой строке (например, запятую), только если в определенном поле содержатся данные. Чтобы включать значение условно, объединяйте поля с помощью оператора +, а не оператора &. Предположим, что у вас есть таблица "Клиент" с полями "Город", "Регион" и "Почтовый индекс". Вы хотите объединить значения в этих полях для отчета, но некоторые записи могут не содержать значений в поле "Регион". Если вы попытаетесь объединить поля с помощью оператора &, вы получите ненужные запятые перед почтовым индексом.
Чтобы исключить ненужные запятые, воспользуйтесь оператором "плюс" (+), как показано в следующем примере выражения:
=([Город] & (", " + [Регион]) & " " & [ПочтовыйИндекс])
Оператор + объединяет текст таким же образом, как оператор &. Однако оператор + также поддерживает так называемое распространение значения Null. Распространение значения Null позволяет возвращать значение Null для всего выражения, если хотя бы один его компонент имеет значение Null. Рассмотрим в предыдущем примере часть выражения (", " + [Регион]). Так как используется оператор +, выражение во внутренних круглых скобках возвращает запятую только в том случае, поле "Регион" содержит значение. Если в поле "Регион" отсутствует значение, срабатывает распространение значения Null, после чего все выражение во внутренних круглых скобках возвращает значение Null, тем самым "скрывая" запятую.
1. Записи, которые включают значения для регионов, отображаются с запятой, пробелом и сокращенным названием региона.
2. Для Петрозаводска регион не указан, поэтому результирующее выражение отображается без запятой, пробела или сокращенного названия региона.