поле выражение в запросе
Примеры выражений
В этой статье приведено множество примеров выражений Access. Выражение — это сочетание математических или логических операторов, констант, функций, полей таблицы, элементов управления и свойств, результатом вычисления которого является одно значение. Выражения применяются для вычисления значений, проверки данных и задания значений по умолчанию.
Формы и отчеты
Таблицы, приведенные в этом разделе, содержат примеры выражений, вычисляющих значение в элементе управления в форме или отчете. Чтобы создать вычисляемый элемент управления, введите выражение в свойство Данные элемента управления, а не в поле таблицы или запроса.
Примечание Выражения также можно использовать в формах или отчетах при выделении данных с помощью условного форматирования.
Операции с текстом
В выражениях, приведенных в таблице ниже, используются операторы & (амперсанд) и + (плюс) для объединения текстовых строк, а также встроенные функции для обработки текстовых строк или выполнения с ними других действий с целью создания вычисляемого элемента управления.
Отображает значения, хранящиеся в полях таблицы FirstName и LastName. В данном примере оператор & используется для объединения значения в поле «Имя», пробела (заключенного в кавычки) и значения в поле «Фамилия».
Функция Left используется для отображения первого знака в значении поля или элемента управления «НазваниеТовара».
Функция Right используется для отображения последних 2 знаков в значении поля или элемента управления «КодТовара».
Функция Trim используется для отображения значения в элементе управления «Адрес» и удаления всех пробелов в начале или конце строки.
=IIf(IsNull([Region]), [City] & » » & [PostalCode], [City] & » » & [Region] & » » & [PostalCode])
Функция IIf используется для отображения значений элементов управления City и PostalCode, если элемент управления Region имеет пустое значение; в противном случае отображаются значения в элементах управления City, Region и PostalCode, разделенные пробелами.
=[City] & (» » + [Region]) & » » & [PostalCode]
Оператор + и распространение значений Null используются для отображения значений в элементах управления «Город» и «Индекс», если элемент управления или поле «Область» имеет значение Null; в противном случае отображаются значения в элементах управления или полях «Город», «Область» и «Индекс», разделенные пробелами.
Распространение значений Null означает, что если хотя бы один компонент выражения возвращает значение Null, то и все выражение также возвращает Null. Оператор + поддерживает распространение значений Null, а оператор & — нет.
Колонтитулы
Для отображения или печати номеров страниц в отчетах или формах используются свойства Page и Pages. Свойства Page и Pages доступны только во время печати или предварительного просмотра, поэтому они не отображаются на странице свойств формы или отчета. Обычно эти свойства используются путем перемещения текстового поля в область верхнего или нижнего колонтитула в форме или отчете и применения выражения, например из приведенной ниже таблицы.
Дополнительные сведения об использовании колонтитулов в формах и отчетах см. в статье Вставка номеров страниц в форму или отчет.
Руководство по синтаксису выражений
В Microsoft Access часто приходится работать со значениями, которые не хранятся непосредственно в базе данных. Например, вам может потребоваться вычислить налог с оборота для заказа или итоговую сумму заказа. Такие значения вычисляются с помощью выражений. Чтобы использовать выражения, их следует записать, используя правильный синтаксис. Синтаксис — это набор правил, по которым сочетаются слова и символы в выражении. Сначала выражения в Access могут показаться сложными для восприятия. Но если разобраться в их синтаксисе и немного попрактиковаться, работа с выражениями не вызовет затруднений.
В этой статье
Общие сведения о выражениях
Выражение — это сочетание некоторых или всех из следующих компонентов: встроенных или пользовательских функций, идентификаторов, операторов, значений и констант. Результатом вычисления выражения является одно значение.
Например, это выражение содержит все четыре указанных компонента:
Sum() — встроенная функция;
[Purchase Price] — идентификатор;
Это выражение можно использовать в текстовом поле в нижнем колонтитуле формы или отчета, чтобы вычислить налог с продаж для группы товаров.
Выражения могут быть гораздо сложнее или проще данного примера. Например, следующее логический выражение состоит только из оператора и константы:
Это выражение возвращает следующие значения:
Вы можете использовать это выражение в свойстве ValidationRule (Правило проверки) элемента управления или поля таблицы, чтобы разрешить ввод только положительных значений. Выражения широко используются для вычислений, обработки символов и проверки данных. У всех объектов — таблиц, запросов, форм, отчетов и макросов — есть свойства, принимающие выражения. Например, для элемента управления можно использовать выражения в свойствах ControlSource (Данные) и DefaultValue (Значение по умолчанию). Вы также можете использовать выражения в свойстве ValidationRule (Правило проверки) поля таблицы.
Компоненты выражений
Чтобы создать выражение, следует объединить идентификаторы с помощью функций, операторов, констант и значений. Любое допустимое выражение должно содержать по крайней мере одну функцию или один идентификатор, а также может включать в себя константы или операторы. Выражение можно также использовать как часть другого выражения — обычно в качестве аргумента функции. Это называется вложением выражений.
Идентификаторы Общий вид:
Один из аргументов обычно представляет собой идентификатор или выражение. Для некоторых функций аргументы не нужны. Прежде чем использовать определенную функцию, ознакомьтесь с ее синтаксисом. Дополнительные сведения см. в статье Функции (по категориям).
Операторы Общий вид:
Существуют исключения, которые описаны в разделе Операторы.
Константы Общий вид:
Значения Значения могут использоваться в различных частях выражения.
Объекты, семейства и свойства
Все таблицы, запросы, формы, отчеты и поля в базе данных Access также называются объектами. У каждого объекта есть имя. Некоторые объекты уже имеют имена, например таблица «Контакты» в базе данных, созданной на основе шаблона «Контакты» Microsoft Office Access. При создании объекта ему следует дать имя.
Набор всех объектов определенного типа называется семейством. Например, набор всех таблиц в базе данных является семейством. Некоторые объекты, являющиеся частью семейства в базе данных, могут также быть семействами, содержащими другие объекты. Например, объект таблицы — это семейство, содержащее объекты полей.
Объекты имеют свойства, которые описывают и позволяют изменять их характеристики. Например, у объекта запроса есть свойство Представление по умолчанию, описывающее отображение запроса при его выполнении и позволяющее настроить его.
На следующей схеме показана связь между семействами, объектами и свойствами:
Идентификаторы
При использовании семейства, объекта или свойства в выражении вы ссылаетесь на него с помощью идентификатора. Идентификатор содержит имена самого элемента и элемента, к которому он относится. Например, идентификатор поля включает в себя имя поля и имя таблицы, в которую оно входит. Пример такого идентификатора:
В некоторых случаях идентификатором служит само имя элемента. Это справедливо, если имя элемента уникально в контексте создаваемого выражения. Оставшаяся часть идентификатора подразумевается по контексту. Например, при создании запроса, использующего только одну таблицу, идентификатором может быть имя поля без имени таблицы, так как имена полей внутри таблицы уникальны. Так как используется только одна таблица, имя таблицы в любом идентификаторе, используемом в запросе для ссылки на поле, подразумевается.
В других случаях необходимо явно указать части идентификатора, чтобы ссылка работала. Это требуется, если идентификатор не является уникальным в контексте выражения. При наличии неоднозначности необходимо явно указать достаточно частей идентификатора, чтобы сделать его уникальным. Например, предположим, что вы создаете запрос, который использует таблицы «Товары» и «Заказы», и обе из них содержат поля КодТовара. В таком случае идентификатор, используемый в запросе для ссылки на поле КодТовара, должен включать имя таблицы в дополнение к имени поля. Например:
Операторы идентификаторов. Существуют три оператора, которые можно использовать в идентификаторах:
оператор «квадратные скобки» ( [ ] ).
Строго говоря, не всегда обязательно заключать идентификатор или его части в квадратные скобки. Если в идентификаторе не содержится пробелов или других специальных знаков, квадратные скобки будут добавлены автоматически. Однако самостоятельное включение квадратных скобок является хорошей практикой, так как позволяет избежать ошибок, а также служит визуальным обозначением идентификатора в выражении.
Функции, операторы, константы и значения
Чтобы создать выражение, следует указать не только идентификаторы, но также и действие, которое требуется выполнить. Для выполнения действий в выражении используются функции, операторы и константы.
Функции
Функция представляет собой процедуру, которую можно использовать в выражении. Некоторые функции, такие как Date, не требуют входных данных, однако большинству функций нужны аргументы.
В следующем списке приведено несколько функций, часто используемых в выражениях. Для получения дополнительных сведений о синтаксисе функции щелкните ее ссылку.
Функция Date позволяет вставить текущую системную дату в выражение. Она обычно используется в сочетании с функцией Format и с идентификаторами полей, содержащих значения даты и времени.
С помощью функции DatePart можно задать или извлечь часть даты, которая обычно берется из поля, заданного идентификатором, но также может возвращаться другой функцией, например Date.
Функция DateDiff используется для определения разницы между двумя датами. Обычно это дата, которая берется из поля, заданного идентификатором, и дата, возвращаемая функцией Date.
Функция Format позволяет применить формат к идентификатору или к результату другой функции.
Функция IIf оценивает выражение как истинное или ложное, а затем возвращает одно значение, если выражение истинно, или другое, если оно ложно.
Функция InStr используется для поиска позиции знака или строка в другой строке. Искомая строка обычно берется из идентификатора поля.
Функции Left, Mid и Right используются для извлечения знаков из строки, начиная с первого символа (Left), определенной позиции в середине (Mid) или последнего символа (Right). Они часто используются в сочетании с функцией InStr. Строка, из которой извлекаются символы, обычно берется из поля, заданного идентификатором.
Список функций по категориям см. в этой статье.
Оператор
Оператор — это слово или символ, обозначающий определенную арифметическую или логическую операцию с элементами выражения. Существуют следующие типы операторов:
арифметические операторы, например знак «плюс» ( + );
операторы сравнения, например знак равенства ( = );
логические операторы, например Not ;
операторы объединения, например & ;
Операторы обычно используются для обозначения отношения между двумя идентификаторами. В приведенных ниже таблицах описаны операторы, используемые в выражениях Access.
Арифметические операторы используется для вычисления значения на основе нескольких чисел или изменения положительного знака числа на отрицательный.
Сложение двух чисел.
Вычисление разницы между двумя числами или вывод отрицательного значения числа.
Перемножение двух чисел.
Деление первого числа на второе.
Округление обоих чисел до целых, деление первого числа на второе и усечение результата до целого.
Возврат остатка от деления первого числа на второе.
[Зарегистрировано] Mod [Комнаты]
Возведение числа в указанную степень.
Операторы сравнения позволяют сравнивать значения. Они возвращают результат True (истина), False (ложь) или Null (неопределенное значение).
Определяет, что первое значение меньше второго.
Определяет, что первое значение не больше второго.
Определяет, что первое значение больше второго.
Определяет, что первое значение не меньше второго.
Определяет, что первое значение равно второму.
Определяет, что первое значение не равно второму.
Используйте логические операторы для объединения двух значений и возврата результата true (истина), false (ложь) или Null. Логические операторы также называются булевыми.
Возвращает значение «Истина», если выражения 1 и 2 имеют значение «Истина».
Возвращает значение «Истина», если хотя бы одно из выражений 1 и 2 имеет значение «Истина».
Возвращает значение «Истина», если оба выражения 1 и 2 имеют значение «Истина» или оба выражения 1 и 2 равны «Ложь».
Возвращает «Истина», если выражение не имеет значения «Истина».
Возвращает значение «Истина», если одно и только одно из выражений 1 и 2 имеет значение «Истина».
С помощью операторов объединения можно объединить два текстовых значения в одну строку.
Объединение двух строк в одну.
Объединение двух строк в одну и распространение значений Null.
Специальные операторы используются, как показано в следующей таблице:
Is Null or Is Not Null
Определяет, равно ли значение Null или Not Null.
Between val1 And val2
Определяет, находится ли число или дата в пределах диапазона.
Определяет, входит ли строковое значение в множество.
Константы
Константа — это известное постоянное значение, которое может быть использовано в выражении. В Access есть четыре часто применяемых константы:
True указывает, что что-то является логической истиной;
False указывает, что что-то является логической ложью;
Null указывает на отсутствие известного значения;
«» (empty string) указывает, что значение является пустым.
Значения
При использовании текстовых строк заключайте их в кавычки, чтобы они правильно интерпретировались Access. В некоторых ситуациях Access вводит кавычки за пользователя. Например, при вводе текста в выражение для правила проверки или условий запроса Access автоматически заключает текстовые строки в кавычки.
При использовании значений даты и времени заключайте значения в символы решетки ( # ). Например, #03.07.17#, #7-Мар-17# и #Мар-7-2017# — допустимые значения даты и времени. Когда приложение Access встречает допустимое значение даты и времени, заключенное в символы «#», значение автоматически обрабатывается как имеющее тип даты и времени.
Максимальное число уровней вложенности в веб-базах данных — 65
Выражения с более чем 65 уровнями вложенности не будут работать в браузере, поэтому их не следует использовать в веб-базах данных Access. Вы не увидите сообщение об ошибке — выражение просто не будет работать.
ВЫРАЗИТЬ в запросах 1С 8.3 — применение на примерах
Оператор «ВЫРАЗИТЬ» в языке запросов 1С 8.3 используют в двух случаях:
Рассмотрим на примерах работу такого оператора.
ВЫРАЗИТЬ КАК Строка
Для работы со строковым типом данных такой оператор может пригодиться, когда необходимо жёстко задать размерность строки.
Синтаксис:
ВЫРАЗИТЬ( КАК Строка( ))
Пример:
ВЫРАЗИТЬ(Номенклатура.Наименование КАК Строка(1)) КАК НаименованиеДлина_1
Справочник.Номенклатура КАК Номенклатура
В таком примере выбираем все наименования из справочника «Номенклатура», затем с помощью конструкции «ВЫРАЗИТЬ» совместно с оператором «Строка», ограничиваем размер строки поля выборки до одного символа.
ВЫРАЗИТЬ КАК Число
В полях выборки запроса имеющих числовой тип данных, с помощью оператора «ВЫРАЗИТЬ» возможно, контролировать длину целой и дробной части числа. В случаях, когда в результате такого контроля будет уменьшено количество знаков в числе, произойдёт округление по математическим правилам.
Синтаксис:
Получите понятные самоучители по 1С бесплатно:
Пример№1:
ВЫРАЗИТЬ(3.55 КАК Число(15,1)) КАК РезультатОкругления
Результат:
Пример№2:
ВЫРАЗИТЬ(10/3 КАК Число(15,2)) КАК РезультатОкругления
Результат:
Глядя на результаты примеров понятно, что оператор «ВЫРАЗИТЬ» округляет числа по правилу «до ближайшего целого».
«ВЫРАЗИТЬ» для составного типа данных и оптимизация запросов
С помощью оператора «ВЫРАЗИТЬ», для в полей имеющих составной тип данных, возможно ограничить попадание значений которые не соответствуют определённому типу данных. Причём такие ограничения можно сделать ещё на этапе выборки данных. Такие действия приводят к неявной оптимизации запросов. Рассмотрим подробно на примере.
Есть запрос, который выбирает всех покупателей, из существующих в базе документов «ПродажаТоваров». У документов такого вида реквизит «Покупатель» имеет составной тип данных:
Запрос:
ПродажаТоваров.Ссылка КАК СсылкаНаДокументПродажи,
ПродажаТоваров.Покупатель КАК СсылкаНаПокупателя
Документ.ПродажаТоваров КАК ПродажаТоваров
Результат:
Следует понимать, что данные в поле «СсылкаНаПокупателя» формируются путём неявного левого соединения с таблицами «Контрагенты.Ссылка» из справочника «Контраенты» и «Сотрудники.Ссылка» из справочника «Сотрудники». Такие соединения в запросах 1С происходят, когда мы обращаемся к подчинённому полю через точку (разыменовываем поле). В нашем случае мы обращаемся к полю «Покупатель».
Визуальное представление работы такого запроса:
Если бы стояла задача отобрать только те документы, в которых покупателем был сотрудник. То наиболее оптимальным решением с точки зрения скорости выполнения запроса было бы вовсе запретить обращаться к справочнику «Контрагенты» так как данные из этого справочника для нас излишни. С такой задачей легко справится оператор «ВЫРАЗИТЬ» и запрос мог бы выглядеть так:
Запрос:
ПродажаТоваров.Ссылка КАК СсылкаНаДокументПродажи,
ВЫРАЗИТЬ(ПродажаТоваров.Покупатель КАК Справочник.Сотрудники) КАК СсылкаНаПокупателя
Документ.ПродажаТоваров КАК ПродажаТоваров
Результат:
Однако, как мы можем видеть из результата запроса, поля выборки, которые не удовлетворяют условиям нашего отбора, получили значения «NULL». По этому реализуя отборы с помощью конструкции «ВЫРАЗИТЬ» во избежание дальнейших ошибок правильно накладывать дополнительное условие, например с помощью оператора «Где». Тогда запрос мог бы выглядеть так:
Запрос:
ПродажаТоваров.Ссылка КАК СсылкаНаДокументПродажи,
ВЫРАЗИТЬ(ПродажаТоваров.Покупатель КАК Справочник.Сотрудники) КАК СсылкаНаПокупателя
Документ.ПродажаТоваров КАК ПродажаТоваров
ПродажаТоваров.Покупатель ССЫЛКА Справочник.Сотрудники
Результат:
Возможные ошибки
С помощью оператора «ВЫРАЗИТЬ» не представляется возможным преобразование типов данных. Например, строку в число:
ВЫРАЗИТЬ(«123» КАК Число(15,2)) КАК Число
При выполнении такого запроса неизбежно получим следующую ошибку:
Создание выражений
С помощью выражений можно выполнять разнообразные операции с данными. Например, вы можете определить, сколько дней прошло с момента отправки заказа, или объединить содержимое полей FirstName и LastName и поместить результат в поле FullName. Разделы этой статьи содержат пошаговые инструкции по созданию выражений.
Вычисление значений элементов управления в формах и отчетах
При использовании выражения в качестве источника данных элемента управления создается вычисляемый элемент управления. Предположим, например, что имеется отчет, в котором отображаются товары на складе, и необходимо создать в нижнем колонтитуле итог для суммирования данных по всем строкам отчета.
Чтобы вычислить итог, поместите элемент управления «поле» в нижний колонтитул отчета и настройте для свойства ControlSource этого поля следующее выражение:
В области навигации щелкните правой кнопкой мыши форму, которую необходимо изменить, и выберите в контекстном меню пункт Режим макета или Конструктор.
Выделите элемент управления, в который необходимо ввести выражение.
Если окно свойств не отображается, нажмите клавишу F4.
Чтобы создать выражение с помощью построителя выражений, нажмите кнопку Построить в ячейке свойства.
После ввода выражения окно свойств будет выглядеть так:
Использование выражений в условиях запросов
Вы можете использовать условия, чтобы ограничить результаты запроса. Введите условия в виде выражения, и приложение Access вернет только соответствующие ему строки.
Предположим, вы хотите просмотреть все заказы с датой отгрузки в течение первых трех месяцев 2017 г. Чтобы задать условие, введите следующее выражение в ячейку Условия столбца «Дата и время» в запросе. В нашем примере используется столбец «Дата и время» с именем ShippedDate. Чтобы определить диапазон дат, введите следующее условие:
Столбец ДатаИсполнения будет выглядеть подобным образом:
Для каждой записи в таблице заказов, для которой значение в столбце ShippedDate попадает в указанный интервал дат, будет создана запись в выходных данных запроса. Обратите внимание: в выражении даты заключаются в знаки решетки ( # ). Значение между знаками решетки трактуется в Access как значение с типом данных «Дата и время». Это означает, что с такими значениями могут производиться соответствующие вычисления, например вычитание одной даты из другой.
В области навигации щелкните правой кнопкой мыши запрос, который необходимо изменить, и выберите в контекстном меню пункт Конструктор.
Выберите ячейку Условия в столбце, для которого необходимо создать условие отбора.
Чтобы использовать построитель выражений, на вкладке Конструктор в группе Настройка запроса нажмите кнопку Построитель .
Если для редактирования выражения вам требуется больше места, установите курсор в ячейку Условие отбора, а затем нажмите сочетание клавиш SHIFT+F2, чтобы открыть окно Область ввода:
Совет Чтобы сделать текст более удобным для чтения, выберите Шрифт.
Создание вычисляемого поля в запросе
Предположим, вы создаете запрос и хотите показать результаты расчета, в котором используются другие поля запроса. Чтобы создать вычисляемое поле, нужно ввести выражение в пустую ячейку в строке Поле запроса. Допустим, в вашем запросе есть поля Количество и Цена. Их значения требуется перемножить, чтобы получить вычисляемое поле Сумма. Для этого в строке Поле запроса введите следующее выражение:
При выполнении запроса в Access выполняется расчет каждой строки, как показано ниже:
В области навигации щелкните правой кнопкой мыши запрос, который необходимо изменить, и выберите в контекстном меню пункт Конструктор.
Выберите ячейку Поле в столбце, в котором необходимо создать вычисляемое поле.
Чтобы создать выражение вручную, просто введите его.
Чтобы использовать построитель выражений, на вкладке Конструктор в группе Настройка запроса нажмите кнопку Построитель.
Создание вычисляемого поля в таблице
В Access можно создать вычисляемое поле в таблице. Благодаря этому для выполнения расчетов не придется создавать отдельный запрос. Например, если у вас есть таблица, в которой перечислены количество, цена и налоговая ставка для каждой позиции заказа, вы можете добавить вычисляемое поле общей стоимости:
В вычислении нельзя использовать поля из других таблиц или запросов, а результаты вычислений доступны только для чтения.
Откройте таблицу, дважды щелкнув ее в области навигации.
Прокрутите таблицу по горизонтали до крайнего правого столбца и нажмите в заголовке столбца кнопку Щелкните, чтобы добавить.
В появившемся списке выберите пункт Вычисляемое поле и укажите тип данных результата. В Access откроется построитель выражений.
Введите формулу вычисления, которую вы хотите использовать для этого поля, например:
Выражения в вычисляемых полях не начинаются со знака равенства (=).
Приложение Access добавит вычисляемое поле и выделит его заголовок, чтобы можно было ввести имя поля.
Введите имя вычисляемого поля и нажмите клавишу ВВОД.
Задание значений по умолчанию для поля таблицы
С помощью выражения можно задать для поля таблицы значение по умолчанию, которое Access будет использовать для новых записей, если не предоставлено другое значение. Допустим, вы хотите автоматически вставлять дату и время в поле «Дата_заказа» при добавлении новой записи. Для этого можно использовать следующее выражение:
В области навигации дважды щелкните таблицу, которую нужно изменить.
Таблица откроется в режиме таблицы.
Выберите поле, которое требуется изменить.
На вкладке Поля в группе Свойства нажмите кнопку Значение по умолчанию. В Access откроется построитель выражений.
Введите выражение, начинающееся со знака равенства ( =).
Примечание. При связывании элемента управления с полем таблицы действует следующее правило: если для элемента управления и для поля заданы значения по умолчанию, значение по умолчанию элемента управления имеет приоритет.
Задание значений по умолчанию для элементов управления
Другим объектом, где часто применяются выражения, является свойство Значение по умолчанию элемента управления. Свойство Значение по умолчанию элемента управления аналогично свойству Значение по умолчанию поля в таблице. Например, чтобы использовать текущую дату в качестве значения по умолчанию для текстового поля, вы можете указать следующее выражение:
В этом выражении используется функция Date, которая возвращает текущую дату, но не время. Если текстовое поле привязано к полю таблицы, которое имеет значение по умолчанию, то значение по умолчанию элемента управления будет иметь приоритет перед значением по умолчанию поля таблицы. Часто имеет смысл настроить свойство Значение по умолчанию для поля таблицы. Если в этом случае к одному и полю таблицы привязано несколько элементов управления в разных формах, каждый из них будет иметь одно значение по умолчанию, и ввод данных во всех формах будет согласованным.
В области навигации щелкните правой кнопкой мыши форму или отчет, которые необходимо изменить, и выберите в контекстном меню пункт Конструктор или Режим макета.
Выделите элемент управления, который необходимо изменить.
Если окно свойств не отображается, нажмите клавишу F4.
На вкладке Все окна свойств перейдите к ячейке свойства Значение по умолчанию.
Введите выражение или нажмите кнопку Построить в ячейке свойства, чтобы создать выражение с помощью построителя выражений.
Добавление правила проверки в поле таблицы или запись
Выражения весьма полезны при проверке данных, которые вводятся в базу данных: они позволяют отсеять неподходящие сведения. В таблицах можно создавать правила проверки двух типов: для полей, которые не позволяют вводить в поля недопустимые данные, и для записей, которые не позволяют создавать записи, нарушающие правило. В обоих случаях используются выражения.
Предположим, что в таблице Inventory имеется поле Units On Hand и требуется задать условие, разрешающее пользователям вводить только неотрицательные значения. Иначе говоря, количество товара никогда не может быть отрицательным. Это можно сделать, указав для поля Units On Hand следующее правило проверки:
ПРОЦЕДУРА: ввод правила проверки для поля или записи
В области навигации дважды щелкните нужную таблицу. Таблица откроется в режиме таблицы.
При вводе условия на значение поля выделите поле, которое необходимо изменить.
На вкладке Поля в группе Проверка поля нажмите кнопку Проверка и выберите пункт Правило проверки поля или Правило проверки. В Access откроется построитель выражений.
Начните вводить необходимые условия. Например, для условия на значение поля, требующего ввода неотрицательных значений, введите следующее выражение:
Не начинайте выражение со знака равенства (=).
ПРОЦЕДУРА: ввод сообщения проверки правильности
Чтобы сделать базу данных более удобной в использовании, можно задать собственные сообщения проверки правильности. Эти сообщения будут использоваться вместо стандартных сообщений, выводимых приложением Access, когда данные не соответствуют условию. В сообщение можно включить сведения, помогающие пользователю ввести правильные данные, например «Значение в поле Units On Hand не может быть отрицательным».
В области навигации дважды щелкните таблицу, которую нужно изменить.
Таблица откроется в режиме таблицы.
При создании сообщения для условия на значение поля выделите соответствующее поле.
На вкладке Поля в группе Проверка полей нажмите кнопку Проверка и выберите пункт Сообщение проверки поля или Сообщение проверки записи.
В диалоговом окне Введите сообщение о проверке введите сообщение, которое будет выводиться, если данные не соответствуют условию на значение, и нажмите кнопку ОК.
Добавление правила проверки в элемент управления
Как и у полей таблицы и записей, у элементов управления есть свойство ValidationRule (Правило проверки), для которого можно создать выражение. Предположим, что используется форма ввода интервала дат для отчета и требуется, чтобы начальная дата была не раньше, чем 01.01.2017. В этом случае можно задать свойства ValidationRule и ValidationText (Сообщение об ошибке) для поля, в которое вводится начальная дата:
Условие на значение
Сообщение об ошибке
Невозможно ввести дату ранее 01.01.2017.
При попытке ввести дату раньше 01.01.2017 будет выведено сообщение с текстом, указанным в свойстве ValidationText. Если поле свойства ValidationText пусто, будет выведено стандартное сообщение. После нажатия кнопки ОК фокус ввода вернется в текстовое поле.
Если условие на значение задается для поля таблицы, оно будет действовать при любом изменении значения этого поля в базе данных. Напротив, если условие на значение задается для элемента управления в форме, оно будет действовать только при использовании этой формы. Чтобы задать разные условия на значение для разных пользователей, иногда имеет смысл создать эти условия отдельно для полей таблицы и элементов управления в форме.
В области навигации щелкните правой кнопкой мыши форму или отчет, которые необходимо изменить, и выберите в контекстном меню пункт Конструктор или Режим макета.
Щелкните правой кнопкой мыши элемент управления, который требуется изменить, и выберите в контекстном меню пункт Свойства. Будет отображено окно свойств элемента управления.
На вкладке Все выберите ячейку свойства Validation Rule (Правило проверки).
Введите выражение или нажмите кнопку Построить в ячейке свойства, чтобы создать выражение с помощью построителя выражений.
Не начинайте выражение с оператора =.
Чтобы настроить сообщение, которое появится при вводе значения, не соответствующего условию, укажите нужный текст в ячейке свойства Сообщение об ошибке.
Группировка и сортировка данных в отчетах
В области Группировка, сортировка и итоги можно определить уровни группировки и порядок сортировки для данных в отчете. Как правило, группировка и сортировка выполняются по полю, выбранному в списке, но если требуется выполнить группировку или сортировку по вычисляемому значению, можно указать выражение.
Группировка — это процедура суммирования столбцов с одинаковыми значениями. Например, пусть в базе данных хранятся сведения о продажах для офисов в разных городах, а один из отчетов этой базы данных называется «Продажи по городам». Запрос, который обеспечивает данные для этого отчета, группирует их по названию города. Такого рода группировка облегчает восприятие и понимание информации.
Напротив, сортировка представляет собой процесс наложения порядка сортировка на строки (записи) в результатах запроса. Например, можно отсортировать записи по значению первичного ключа (или по другому набору значений в другом поле) по возрастанию или по убыванию либо отсортировать записи по одному или нескольким символам в указанном порядке, например по алфавиту.
ПРОЦЕДУРА: добавление группировки и сортировки в отчет
В области навигации щелкните правой кнопкой мыши отчет, который необходимо изменить, и выберите в контекстном меню пункт Режим макета или Конструктор.
На вкладке Конструктор в группе Группировка и итоги нажмите кнопку Группировка и сортировка. Ниже отчета появится область Группировка, сортировка и итоги.
Чтобы добавить к отчету уровень группировки, нажмите Добавить группировку.
Чтобы добавить к отчету порядок сортировки, нажмите Добавить сортировку.
В области появится новый уровень группировки или порядок сортировки, а также список полей с данными для этого отчета. На приведенном ниже рисунке показан типичный новый уровень группировки (по полю «Категория») и порядок сортировки (по полю «Производитель»), а также список доступных полей для группировки и сортировки.
Ниже списка доступных полей нажмите выражение, чтобы открыть построитель выражений.
Введите нужное выражение в поле выражения (верхнее поле) построителя выражений. Обязательно начните выражение с оператора равенства ( = ).
ПРОЦЕДУРА: добавление выражения в существующую группировку или сортировку
В области навигации щелкните правой кнопкой мыши отчет, который необходимо изменить, и выберите в контекстном меню пункт Режим макета или Конструктор.
Выберите уровень группировки или порядок сортировки, который требуется изменить.
Щелкните стрелку вниз рядом с пунктом Группировка (уровни группировки) или Сортировка (порядок сортировки). Появится список доступных полей
В нижней части этого списка нажмите выражение, чтобы открыть построитель выражений.
Введите выражение в поле выражения (верхнем поле) построителя выражений. Убедитесь, что выражение начинается с оператора равенства ( =).
Управление запуском макрокоманд
В некоторых случаях выполнять макрокоманду или набор макрокоманд в макросе нужно только в том случае, если выполнено определенное условие. Предположим, необходимо, чтобы макрокоманда выполнялась только в том случае, если значение в поле не меньше 10. Для этого в блоке Если макроса можно задать соответствующее условие с помощью выражения.
Например, допустим, что текстовое поле называется «Позиции». Выражение для условия будет выглядеть следующим образом:
В области навигации щелкните правой кнопкой мыши макрос, который необходимо изменить, и выберите в контекстном меню пункт Конструктор.
Перейдите к блоку Если, который требуется изменить, или добавьте блок Если из области «Каталог макрокоманд».
Щелкните верхнюю строку блока Если.
Введите условное выражение в поле или нажмите кнопку Построить рядом с ячейкой выражения, чтобы открыть построитель выражений.