Руководство по синтаксису выражений

При работе в Microsoft Access могут возникать ситуации, когда необходимо получить значения, не содержащиеся в данных напрямую. Например, вам может потребоваться вычислить налог с оборота для заказа или итоговое значение по заказу. Такие значения вычисляются с помощью выражений.

Чтобы использовать выражения, их сначала следует записать, используя правильный синтаксис. Синтаксис — это набор правил, по которым объединяются слова и символы в выражении.

Это можно представить себе следующим образом: если вы хотите, чтобы Access сделал что-то, вам нужно обратиться к нему на его языке. Предположим, что вы хотите попросить Access проверить поле "ДатаРождения" в таблице "Клиенты" и сообщить год рождения заказчика. Вы можете записать эту просьбу в виде выражения DatePart("yyyy",[Клиенты]![ДатаРождения]). Это выражение содержит функцию DatePart и два аргумента: "yyyy" и [Клиенты]![ДатаРождения].

Рассмотрим его более подробно.

Пример выражения

1. DatePart — это функция, которая проверяет даты и возвращает определенный фрагмент.

Совет : В Access 2010 и более поздних версий построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.

2. Аргумент интервала сообщает Access, какую часть даты нужно вернуть. В данном случае значение "yyyy" указывает на то, что требуется вернуть только год.

3. Аргумент даты говорит о том, где искать значение даты. В данном случае значение [Клиенты]![ДатаРождения] указывает, что дата находится в поле "ДатаРождения" таблицы "Клиенты".

Итак, в выражениях Access используется язык, который может быть немного сложен для восприятия. Но с пониманием синтаксиса выражений и практикой становится проще воспринимать его.

Есть несколько ключевых понятий, которые следует знать перед написанием выражений. В этой статье приведены принципы, важные для понимания синтаксиса выражений, и описан этот синтаксис.

Данная статья не затрагивает синтаксис языка SQL и не является руководством по синтаксису Visual Basic для приложений (VBA).

В этой статье

Введение

Объекты, семейства и свойства

Идентификаторы

Функции, операторы и константы

Введение

Чтобы создать выражение, следует объединить идентификаторы с помощью функций, операторов и констант. Любое допустимое выражение должно содержать по крайней мере одну функцию или один идентификатор, а также может включать константы или операторы. Выражение можно также использовать как часть другого выражения — обычно в качестве аргумента функции.

  • Идентификаторы в выражениях.    Идентификатор в выражении обычно выглядит как [Имя семейства]![Имя объекта].[Имя свойства].

    Примечание : Достаточно указать столько частей идентификатора, чтобы он был уникальным в контексте выражения. Нередко идентификатор имеет форму [Имя объекта].

  • Функции в выражениях.    Выражения с функциями имеют вид Функция(аргумент, аргумент), где один из аргументов обычно является идентификатором или выражением.

    Примечание : У некоторых функций нет обязательных аргументов.

    Прежде чем использовать определенную функцию, прочтите статью справки о ее синтаксисе.

  • Операторы в выражениях.    Выражения с операторами обычно имеют вид Идентификатороператоридентификатор. Существуют исключения, которые описаны в таблице в разделе Операторы.

  • Константы в выражениях.    Выражения с константами обычно имеют вид Идентификатороператор_сравненияконстанта.

К началу страницы

Объекты, семейства и свойства

Все таблицы, запросы, формы, отчеты и поля в базе данных Access также называются объектами. У каждого объекта есть имя. Некоторые объекты уже имеют имена, например таблица "Контакты" в базе данных, созданной на основе шаблона "Контакты" Microsoft Office Access. При создании объекта ему следует дать имя.

Набор всех объектов определенного типа называется семейством. Например, набор всех таблиц в базе данных является семейством. Некоторые объекты, являющиеся частью семейства в базе данных, могут также быть семействами, содержащими другие объекты. Например, объект таблицы — это семейство, содержащее объекты полей.

Объекты имеют свойства, которые описывают и позволяют изменять их характеристики. Например, у объекта запроса есть свойство Представление по умолчанию, описывающее отображение запроса при его выполнении и позволяющее настроить его.

На следующей схеме показана связь между семействами, объектами и свойствами:

Связи между семействами, объектами и свойствами

1. Семейство

2. Объект

3. Свойство

К началу страницы

Идентификаторы

При использовании семейства, объекта или свойства в выражении вы ссылаетесь на него с помощью идентификатора. Идентификатор содержит имена самого элемента и элемента, к которому он относится. Например, идентификатор поля включает имя поля и имя таблицы, в которую оно входит. Пример такого идентификатора можно найти в предыдущем примере выражения: [Клиенты]![ДатаРождения].

В некоторых случаях идентификатором служит само имя элемента. Это справедливо, если имя элемента уникально в контексте создаваемого выражения. Оставшаяся часть идентификатора подразумевается по контексту. Например, при создании запроса, использующего только одну таблицу, идентификатором может быть имя поля без имени таблицы, так как имена полей внутри таблицы уникальны. Так как используется только одна таблица, имя таблицы в любом идентификаторе, используемом в запросе для ссылки на поле, подразумевается.

В других случаях необходимо явно указать части идентификатора, чтобы ссылка работала. Это требуется, если идентификатор не является уникальным в контексте выражения. При наличии неоднозначности необходимо явно указать достаточно частей идентификатора, чтобы сделать его уникальным. Например, предположим, что вы создаете запрос, который использует таблицы "Товары" и "Заказы", и обе из них содержат поля "КодТовара". В таком случае идентификатор, используемый в запросе для ссылки на это поле, должен включать имя таблицы, например [Товары]![КодТовара].

Операторы идентификаторов.    Существуют три оператора, которые можно использовать в идентификаторах.

  • Оператор "восклицательный знак" (!)

  • Оператор "точка" (!)

  • Оператор "квадратные скобки" ([ ])

Каждая часть идентификатора заключается в квадратные скобки, а затем они соединяются с помощью восклицательного знака или точки. Например, идентификатор для поля "Фамилия" в таблице "Сотрудники" будет указываться как [Сотрудники]![Фамилия]. Оператор "восклицательный знак" означает, что объект, следующий за ним, относится к семейству, указанному до него. В этом случае [Фамилия] — это объект поля, которое принадлежит к семейству [Сотрудники], являющемуся объектом таблицы.

Примечание : Строго говоря, не всегда обязательно заключать идентификатор или его части в квадратные скобки. Если в идентификаторе не содержится пробелов или других специальных знаков, квадратные скобки будут добавлены автоматически. Однако самостоятельное включение квадратных скобок является хорошей практикой, так как позволяет избежать ошибок, а также служит визуальным обозначением идентификатора в выражении.

К началу страницы

Функции, операторы и константы

Чтобы создать выражение, следует указать не только идентификаторы, но также и действие, которое требуется выполнить. Для выполнения действий в выражении используются функции, операторы и константы.

Функции

Функция представляет собой процедуру, которую можно использовать в выражении. Некоторые функции, такие как Date, не требуют входных данных, однако большинству функций нужны аргументы. В примере, приведенном в начале этой статьи, у функции DatePart два аргумента: интервал (со значением "yyyy") и дата (со значением [Клиенты]![ДатаРождения]). Функции DatePart требуются по крайней мере эти два аргумента (интервал и дата), но она может принимать до четырех аргументов.

Примечание : Если функция имеет более одного аргумента, они разделяются запятыми.

В следующем списке приведено несколько функций, часто используемых в выражениях. Для получения дополнительных сведений о синтаксисе функции щелкните ее ссылку.

  • Date. Функция Date позволяет вставить текущую системную дату в выражение. Она обычно используется в сочетании с функцией Format и с идентификаторами полей, содержащих значения даты и времени.

  • DatePart. Функция DatePart используется для определения или извлечения части даты, которая обычно берется из идентификатора поля, но также может возвращаться другой функцией, например Date.

  • DateDiff. Функция DateDiff используется для определения разницы между двумя датами. Обычно это дата, которая берется из идентификатора поля, и дата, возвращаемая функцией Date.

  • Format. Функция Format позволяет применить формат к идентификатору или результатам вычисления другой функции.

  • IIf. Функция IIf оценивает выражение как истинное или ложное, а затем возвращает одно значение, если выражение принимает значение "истина", или другое, если выражение имеет значение "ложь".

  • InStr. Функция InStr используется для поиска позиции знака или строка в другой строке. Искомая строка обычно берется из идентификатора поля.

  • Left, Mid и Right. Эти функции используются для извлечения знаков из строки, начиная с первого символа (Left), определенной позиции в середине (Mid) или последнего символа (Right). Они часто используются в сочетании с функцией InStr. Строка, из которой извлекаются символы, обычно берется из идентификатора поля.

Список функций по категориям см. в этой статье.

Оператор

Оператор — это слово или символ, обозначающий определенную арифметическую или логическую операцию с элементами выражения. Существуют следующие типы операторов:

  • Арифметические операторы, например знак "плюс" (+).

  • Операторы сравнения, например знак равенства (=).

  • Логические операторы, например Not.

Операторы обычно используются для обозначения отношения между двумя идентификаторами. В приведенных ниже таблицах описаны операторы, используемые в выражениях Access.

Арифметические операторы   

Арифметические операторы используется для вычисления значения на основе нескольких чисел или изменения положительного знака числа на отрицательный.

Оператор

Назначение

Пример

+

Сложение двух чисел.

[ПромежуточныеИтоги] + [НалогСПродаж]

-

Вычисление разницы между двумя числами или вывод отрицательного значения числа.

[Цена]-[Скидка]

*

Перемножение двух чисел.

[Количество]*[Цена]

/

Деление первого числа на второе.

[Итого]/[КоличествоЕдиниц]

\

Округление обоих чисел до целых, деление первого числа на второе и усечение результата до целого.

[Зарегистрировано]\[Комнаты]

Mod

Возврат остатка от деления первого числа на второе.

[Зарегистрировано] Mod [Комнаты]

^

Возведение числа в указанную степень.

Число ^ Степень

Операторы сравнения   

Операторы сравнения позволяют сравнивать значения. Они возвращают результат true (истина), false (ложь) или Null (неизвестное значение).

Оператор

Назначение

<

Определение того, что первое значение меньше второго.

<=

Определение того, что первое значение не больше второго.

>

Определение того, что первое значение больше второго.

>=

Определение того, что первое значение не меньше второго.

=

Определение того, что первое значение равно второму.

<>

Определение того, что первое значение не равно второму.

Если первое или второе значение в любом из случаев равно Null, результатом также является Null. Так как Null представляет собой неизвестное значение, результат сравнения со значением Null также неизвестен.

Логические операторы    

Используйте логические операторы для объединения двух значений и возврата результата true (истина), false (ложь) или Null. Логические операторы также называются булевыми.

Оператор

Использование

Описание

And

Выраж1 And Выраж2

Возвращает значение "Истина", если выражения 1 и 2 имеют значение "Истина".

Or

Выраж1 Or Выраж2

Возвращает значение "Истина", если хотя бы одно из выражений 1 и 2 имеет значение "Истина".

Eqv

Выраж1 Eqv Выраж2

Возвращает значение "Истина", если оба выражения 1 и 2 имеют значение "Истина" или оба выражения 1 и 2 равны "Ложь".

Not

Not Выраж

Возвращает "Истина", если выражение не имеет значения "Истина".

Xor

Выраж1 Xor Выраж2

Возвращает значение "Истина", если одно и только одно из выражений 1 и 2 имеет значение "Истина".

Операторы объединения    

Операторы объединения позволяют объединить два текстовых значения в одну строку.

Оператор

Использование

Описание

&

строка1 & строка2

Объединение двух строк в одну.

+

строка1 + строка2

Объединение двух строк в одну и распространение значений Null.

Специальные операторы   

Специальные операторы используются, как показано в следующей таблице:

Оператор

Описание

Дополнительные сведения

Is Null или Is Not Null

Определение того, равно ли значение Null или Not Null.

Like "шаблон"

Поиск строковых значений с помощью подстановочных операторов ? и *.

Оператор Like

Between значение1 And значение2

Определение того, находится ли число или дата в пределах диапазона.

Оператор Between...And

In(строка1,строка2...)

Определение того, входит ли строковое значение в множество.

Оператор In

Константы

Константа — это известное постоянное значение, которое может быть использовано в выражении. В Access есть четыре часто применяемых константы:

  • True   : указывает, что что-то является логической истиной.

  • False   : указывает, что что-то является логической ложью.

  • Null   : указывает на отсутствие известного значения.

  • "" (пустая строка)   : указывает, что значение является пустым.

Константы могут использоваться в качестве аргументов функций и в выражениях как часть условия. Например, константу "пустая строка" ("") можно использовать в качестве условия для столбца в запросе, чтобы вернуть значения полей этого столбца: <>"". В данном примере <> является оператором, а "" — константой. Вместе они определяют, что идентификатор должен пройти сравнение с пустой строкой. Выражение возвращает значение True в случае, если значение идентификатора не равно пустой строке.

Примечание : Будьте осторожны при использовании константы Null. В большинстве случаев использование константы Null совместно с оператором сравнения будет приводить к ошибке. Если в выражении требуется сравнить значение с константой Null, используйте оператор Is Null или Is Not Null.

Дополнительные сведения об использовании выражений см. в статье Создание выражений.

К началу страницы

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×