Посібник із синтаксису виразів

Посібник із синтаксису виразів

Використовуючи Microsoft Access, вам часто потрібно працювати зі значеннями, не розташованими безпосередньо у ваших даних. Наприклад, ви хочете розрахувати податок зі збуту для замовлення або обчислити загальну суму самого замовлення. Це можна зробити за допомогою виразів. Щоб використовувати вирази, їх потрібно записати з правильним синтаксисом. Синтаксис – це набір правил, за якими слова й символи у виразі правильно поєднуються. Значення виразів в Access спочатку буває складно зрозуміти. Однак коли ви розумітимете синтаксис виразів і трохи попрактикуєтесь, вам стане значно легше.

У цій статті

Огляд виразів

Компоненти виразів

Об’єкти, колекції та властивості

Ідентифікатори

Функції, оператори, константи та значення

65 – обмеження на кількість рівнів вкладення виразів у веб-базі даних

Огляд виразів

Вираз – це комбінація кількох або всіх таких елементів: вбудованих або власних функцій користувача, ідентифікаторів, операторів, значень і констант, що дорівнює одному значенню.

компоненти виразу

Наприклад, цей вираз містить типові компоненти:

=Sum([Purchase Price])*0.08 
  • Sum() – вбудована функція

  • [Purchase Price] – ідентифікатор

  • * – математичний оператор

  • 0.08 – константа

Цей вираз можна використовувати в текстовому полі в нижньому колонтитулі форми або звіту, щоб наводити податок зі збуту для групи елементів.

Вирази можуть бути набагато складніші або простіші, ніж у наведеному прикладі. Наприклад, такий Логічне значення вираз складається лише з одного оператора й однієї константи:

>0

Цей вираз повертає:

  • значення True в разі порівняння з числом, більшим за 0;

  • значення False у разі порівняння з числом, меншим за 0.

Цей вираз можна використовувати у властивості Правило перевірки елемента керування або поля таблиці, щоб забезпечити введення лише додатних значень. Використовуючи вирази, можна обчислювати значення, виконувати операції із символами або перевіряти дані в різних місцях. Таблиці, запити, форми, звіти й макроси містять властивості, які приймають вирази. Наприклад, ви можете використовувати властивості Джерело елемента керування та Значення за замовчуванням для елемента керування. Вирази можна також використовувати у властивості Правило перевірки поля таблиці.

На початок сторінки

Компоненти виразів

Щоб створити вираз, потрібно поєднати ідентифікатори за допомогою функцій, операторів, констант і значень. Кожен припустимий вираз має містити принаймні одну функцію або один ідентифікатор, а також може містити константи чи оператори. Вираз також можна використовувати в складі іншого виразу, зазвичай як аргумент функції. Це називається вкладенням виразу.

  • Ідентифікатори    Зазвичай мають таку форму:

    [Collection name]![Object name].[Property name]

    Потрібно лише вказати достатню кількість частин ідентифікатора, щоб зробити його унікальним у контексті вашого виразу. Ідентифікатор часто має форму [Object name].

  • Функції    Зазвичай мають таку форму:

    Function(argument, argument)

    Один з аргументів – це зазвичай ідентифікатор або вираз. Деякі функції не потребують аргументів. Перш ніж використовувати певну функцію, перевірте її синтаксис. Додаткові відомості див. в статті Функції (за категоріями).

  • Оператори    Зазвичай мають таку форму:

    Identifier operator identifier

    Для цієї форми є винятки, які докладно описано в розділі Оператори.

  • Константи    Зазвичай мають таку форму:

    Identifier comparison_operator  constant
  • Значення    Можуть міститися в багатьох частинах виразу.

На початок сторінки

Об’єкти, колекції та властивості

Усі таблиці, запити, форми, звіти й поля в базі даних Access окремо називаються об’єктами. Кожен об’єкт має ім’я. Деякі об’єкти вже отримали ім’я, наприклад, таблиця "Контакти" в базі даних, створена із шаблона "Контакти" Microsoft Office Access. Створюючи новий об’єкт, ви повинні його назвати.

Набір усіх об’єктів певного типу називається колекцією. Наприклад, сукупність усіх таблиць у базі даних – це колекція. Деякі об’єкти, що входять до колекції у вашій базі даних, можуть також бути колекціями, які містять інші об’єкти. Наприклад, об’єкт таблиці є колекцією, яка містить об’єкти полів.

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

На схемі нижче показано зв’язок між колекціями, об’єктами та властивостями.

Зв’язки між колекціями, об’єктами та властивостями

3. Властивість

2. Об’єкт

1. Колекція

На початок сторінки

Ідентифікатори

Використовуючи об’єкт, колекцію або властивість у виразі, ви посилаєтеся на цей елемент за допомогою ідентифікатора. Ідентифікатор містить ім’я елемента, який ви визначаєте, а також ім’я елемента, до якого він належить. Наприклад, ідентифікатор поля включає в себе ім’я поля та ім’я таблиці, до якої належить поле. Приклад такого ідентифікатора:

[Customers]![BirthDate]

У деяких випадках ім’я елемента саме по собі є ідентифікатором. Так буває, коли ім’я елемента унікальне в контексті виразу, який ви створюєте, а решта ідентифікатора випливає з контексту. Наприклад, якщо ви створюєте запит, у якому використовується лише одна таблиця, імена полів працюватимуть як ідентифікатори, тому що імена полів у таблиці мають бути унікальні в цій таблиці. Оскільки це лише одна таблиця, ідентифікатор, який ви записуєте в запиті для посилання на поле, одержує ім’я таблиці з контексту.

Щоб посилання працювало в інших випадках, ви повинні явним чином указати частини ідентифікатора. Це необхідно, якщо ідентифікатор неунікальний у контексті виразу. Коли існує неоднозначність, потрібно явно вказати достатньо частин ідентифікатора, щоб зробити його унікальним у контексті. Припустімо, ви створюєте запит, у якому використовуються таблиці "Товари" та "Замовлення". Обидві таблиці містять поле з іменем ІДТовару. У такому разі ідентифікатор, який використовується в запиті для посилання на будь-яке поле ІДТовару, крім імені поля, має містити ім’я таблиці. Наприклад:

[Products]![ProductID]

Оператори ідентифікатора    В ідентифікаторі можна використовувати три оператори:

  • знак оклику (!);

  • крапку (.);

  • квадратні дужки ([ ]).

Ці оператори використовуються таким чином: кожна частина ідентифікатора береться у квадратні дужки, які потім поєднуються за допомогою знака оклику або крапки. Наприклад, ідентифікатор для поля "Прізвище" в таблиці "Працівники" може мати такий вигляд: [Employees]![Last Name]. Знак оклику повідомляє Access, що після нього вказано об’єкт, який належить до колекції сайтів, указаної перед знаком оклику. У цьому прикладі [Прізвище] – це об’єкт поля, що належить до колекції [Працівники], яка сама є об’єктом таблиці.

Власне кажучи, навколо ідентифікатора або його частини не завжди потрібно вводити квадратні дужки. Якщо ідентифікатор не містить пробілів або інших спеціальних символів, Access автоматично додає дужки, коли читає вираз. Проте рекомендовано вводити квадратні дужки самостійно. Вони допомагають уникати помилок, а також слугують візуальним позначенням того, що певна частина виразу є ідентифікатором.

На початок сторінки

Функції, оператори, константи та значення

Щоб створити вираз, одних лише ідентифікаторів замало – потрібно також виконувати певну дію. Щоб у виразі виконувалися певні дії, використовуються функції, оператори й константи.

Функції

Функція – це процедура, яку можна використовувати у виразі. Деякі функції, наприклад Date, можуть працювати без вхідних даних. Однак для більшості функцій потрібно вводити дані, які називаються аргументами.

У прикладі, наведеному на початку цієї статті, у функції DatePart використовуються два аргументи: аргумент "інтервал" зі значенням "yyyy" і аргумент "дата", який має значення [Customers]![BirthDate]. Для функції DatePart потрібно вказати принаймні ці два аргументи ("інтервал" і "дата"), але можна вказати до чотирьох аргументів.

У наведеному нижче списку показано кілька функцій, які часто використовуються у виразах. Клацайте посилання, щоб отримати докладніші відомості про синтаксис тієї чи іншої функції.

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

    =Date()
  • Функція DatePart використовується, щоб визначати або видобувати частину дати. Зазвичай це дата, отримана з ідентифікатора поля, але іноді це значення дати, повернуте іншою функцією, наприклад Date.

    DatePart ( "yyyy", Date())
  • Функція DateDiff використовується, щоб визначати різницю між двома датами, зазвичай між датою, отриманою з ідентифікатора поля, і датою, отриманою за допомогою функції Date.

    =DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10 
  • Функція Format використовується, щоб застосувати формат до ідентифікатора, а також до результатів іншої функції.

    Format([Date],"ww")=Format(Now(),"ww")-1 
  • Функція IIf оцінює вираз як "Істина" або "Хибність", а потім повертає одне значення, якщо вираз має значення "Істина", або інше, якщо – "Хибність".

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
  • Функція InStr використовується, щоб шукати розташування символу або рядка в іншому рядку. Рядок, у якому виконується пошук, зазвичай отримується з ідентифікатора поля.

    InStr(1,[IPAddress],".")
  • Функції Left, Mid і Right використовуються, щоб видобувати символи з рядка, починаючи з крайнього лівого символу (Left), певної позиції всередині рядка (Mid) або крайнього правого символу (Right). Вони зазвичай використовуються з функцією InStr. Рядок, з якого ці функції видобувають символи, зазвичай отримується з ідентифікатора поля.

    Left([ProductName], 1)
    Right([AssetCode], 2) 
    Mid([Phone],2,3) 
    

Список функцій див. в статті Функції (за категоріями).

Оператори

Оператор – це слово чи символ, який позначає певний арифметичний або логічний зв’язок між іншими елементами у виразі. Оператори бувають таких типів:

  • арифметичні оператори, наприклад знак плюс (+);

  • оператори порівняння, наприклад знак рівності (=);

  • логічні оператори, наприклад Not;

  • оператори злиття, наприклад &;

  • спеціальні оператори, наприклад Like.

За допомогою операторів зазвичай позначаються зв’язки між двома ідентифікаторами. У таблицях нижче описано оператори, які можна використовувати у виразах Access.

Арифметичні оператори   

Використовуючи арифметичні оператори, можна виконувати арифметичні дії з кількома числами, а також змінювати знак числа з додатного на від’ємний.

Оператор

Призначення

Приклад

+

Сума двох чисел.

[Проміжний_підсумок] + [Податок_зі_збуту]

-

Визначення різниці між двома числами або позначення від’ємного значення числа.

[Ціна]-[Знижка]

*

Множення двох чисел.

[Кількість]*[Ціна]

/

Ділення першого числа на друге.

[Підсумок]/[Кількість_позицій]

\

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

[Зареєстровано]\[Номери]

Mod

Ділення першого числа на друге й повернення лише остачі.

[Зареєстровано] Mod [Номери]

^

Піднесення числа до степеня.

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

Оператори порівняння   

Оператори порівняння використовуються, щоб порівнювати значення, і повертають результат "Істина", "Хибність" або Null-значення (якщо значення невідоме).

Оператор

Призначення

<

Визначає, чи перше значення менше за друге.

<=

Визначає, чи перше значення менше за друге або рівне йому.

>

Визначає, чи перше значення більше за друге.

>=

Визначає, чи перше значення більше за друге або рівне йому.

=

Визначає, чи перше значення дорівнює другому.

<>

Визначає, чи перше значення не дорівнює другому.

У всіх цих випадках, якщо перша або друга величина – це Null, результатом також буде Null. Null позначає невідоме значення, тому результат порівняння з Null-значенням також буде невідомий.

Логічні оператори   

За допомогою логічних операторів можна об’єднувати два значення. Вони повертають результат "Істина", "Хибність" або Null-значення. Логічні оператори також називаються булевими.

Оператор

Використання

Опис

And

вираз1 And вираз2

"Істина", якщо вираз1 і вираз2 істинні.

Or

вираз1 Or вираз2

"Істина", якщо істинний один із виразів: вираз1 або вираз2.

Eqv

вираз1 Eqv вираз2

"Істина", якщо істинні або хибні обидва вирази: вираз1 і вираз2.

Not

Not вираз

"Істина", якщо вираз не істинний.

Xor

вираз1 Xor вираз2

"Істина", якщо істинний лише вираз1 або лише вираз2, але не обидва.

Оператори злиття   

Оператори злиття використовуються, щоб об’єднувати два текстові значення в один рядок.

Оператор

Використання

Опис

&

рядок1 & рядок2

Поєднання двох рядків в один.

+

рядок1 + рядок2

Поєднання двох рядків в один і розповсюдження Null-значень.

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

Використання спеціальних операторів описано в таблиці нижче.

Оператор

Опис

Додаткові відомості

Is Null or Is Not Null

Визначає, чи дорівнює величина Null-значенню.

Like "pattern"

Зіставляє значення-рядки, використовуючи оператори-символи узагальнення ? та *.

Оператор Like

Between val1 And val2

Визначає, чи належить числове значення або значення дати до діапазону.

Оператор Between…And

In(string1,string2...)

Визначає, чи рядкове значення міститься в наборі рядкових значень.

Оператор In

Константи

Константа – це відоме значення, що не змінюється, яке можна використовувати у виразі. В Access є чотири константи, які часто використовуються:

  • True Позначає щось логічно істинне.

  • False Позначає щось логічно хибне.

  • Null Позначає невідоме значення.

  • "" (empty string) Указує на значення, про яке відомо, що воно пусте.

Константи можна використовувати як аргументи функції, а також у виразі як частину умови. Наприклад, ви можете записати константу пустого рядка ("") як частину умови для стовпця в запиті, щоб оцінити значення полів для такого стовпця. Така умова має вигляд: <>"". У цьому прикладі <> – це оператор, а "" – константа. Разом вони показують, що ідентифікатор, до якого вони застосовуються, слід порівнювати з пустим рядком. Результатом виразу є значення "Істина", якщо ідентифікатор має інше значення, ніж пустий рядок.

Будьте уважні, використовуючи константу Null. Здебільшого використання Null у поєднанні з оператором порівняння призводить до помилки. Якщо у виразі потрібно порівняти значення з Null, використовуйте оператор Is Null або Is Not Null.

Значення

У виразах можна використовувати значення-літерали, наприклад число 1 254 або рядок "Введіть число від 1 до 10". Можна також використовувати числові значення – послідовності цифр – і за потреби включати знак і десяткову кому. У разі відсутності знака програма Access автоматично сприймає значення як додатне. Щоб зробити значення від’ємним, додайте мінус (). Можна також застосувати експоненціальну нотацію. Для цього додайте "Е" або "е" та знак показника ступеня (наприклад, 1,0Е–6).

Використовуючи текстові рядки, беріть їх у лапки, щоб програма Access правильно їх інтерпретувала. У деяких випадках лапки додаються в Access автоматично. Наприклад, якщо ввести текст у виразі для правила перевірки або умови запиту, в Access автоматично додаються лапки на початку та в кінці текстових рядків.

Наприклад, якщо ввести текст Paris, у виразі відображається "Париж". Якщо вираз має повернути рядок у лапках, візьміть вкладений рядок в одинарні лапки (') або тричі в подвійні лапки ("). Такі вирази будуть еквівалентні:

Forms![Contacts]![City]. DefaultValue = ' "Paris" ' 
Forms![Contacts]![City].DefaultValue = " " "Paris" " " 

Щоб використовувати значення дати й часу, перед ними й після них потрібно додати символи дієза (#). Наприклад, #3-7-17#, #7-Бер-17# і #Бер-7-2017# – це все припустимі значення дати й часу. Якщо в Access міститься припустиме значення дати й часу між символами #, воно автоматично обробляється як значення типу даних "Дата й час".

На початок сторінки

65 – обмеження на кількість рівнів вкладення виразів у веб-базі даних

Вирази з кількістю рівнів вкладень, яка перевищує 65, не працюватимуть у браузері, тому такі вирази не слід використовувати у веб-базі даних Access. Ви не отримуватимете повідомлення про помилки, тому що вирази просто не працюватимуть.

Використання операторів &, AND і OR дає змогу створити додаткові рівні вкладення на сервері, однак вони не відображатимуться в клієнті Access. Наприклад, вираз "a" & "b" & "c" не вставляється в побудовнику виразів, але в SharePoint він перетворюється на concatenate.Db("a", concatenate.Db("b", "c") ). Завдяки перекладу створюється один рівень вкладення. Використання багатьох послідовних операторів (&, AND або OR) в одному виразі може призвести до перевищення кількості максимально допустимих вкладень на сервері (65), а тому вираз не працюватиме в браузері.

На початок сторінки

Див. також

Використання побудовника виразів

Загальні відомості про вирази

Побудова виразу

Приклади виразів

Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×