Використовуючи 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]
У деяких випадках ім'я елемента працює саме по собі як ідентифікатор. Це твердження, якщо ім'я елемента унікальне в контексті виразу, який ви створюєте. Решта ідентифікатора визначається контекстом. Наприклад, якщо ви створюєте запит, у якому використовується лише одна таблиця, ідентифікаторами служитимуть лише імена полів, оскільки імена полів у таблиці мають бути унікальні в цій таблиці. Оскільки ви використовуєте лише одну таблицю, ім'я таблиці матиметься на увазі в будь-якому ідентифікаторі, який використовується в запиті для посилання на поле.
В інших випадках, щоб посилання працювало, потрібно чітко вказати частини ідентифікатора. Це вірно, якщо ідентифікатор не унікальний у контексті виразу. Якщо є неоднозначність, потрібно явно позначити достатню кількість частин ідентифікатора, щоб зробити його унікальним у контексті. Наприклад, ви створюєте запит, який використовує таблиці під назвами «Продукти» та «Замовлення», і обидві таблиці мають поле « Ідентифікатор продукту». У такому випадку ідентифікатор, за допомогою якого ви посилаєтеся на будь-яке поле "ProductID", має містити не лише ім'я поля, а й ім'я таблиці. Наприклад:
[Products]![ProductID]
Оператори ідентифікатора В ідентифікаторі можна використовувати три оператори:
- знак оклику (
!) - крапку (
.) - Квадратні дужки (
[ ])
Ці оператори використовуються таким чином: кожна частина ідентифікатора береться у квадратні дужки, які потім поєднуються за допомогою знака оклику або крапки. Наприклад, ідентифікатор для поля "Прізвище" в таблиці "Працівники" може мати такий вигляд [Employees]![Last Name]: Знак оклику повідомляє Access, що після нього вказано об’єкт, який належить до колекції сайтів, указаної перед знаком оклику. У цьому прикладі [Прізвище] – це об’єкт поля, що належить до колекції [Працівники], яка сама є об’єктом таблиці.
Власне кажучи, навколо ідентифікатора або його частини не завжди потрібно вводити квадратні дужки. Якщо ідентифікатор не містить пробілів або інших спеціальних символів, Access автоматично додає дужки, коли читає вираз. Проте рекомендовано вводити квадратні дужки самостійно. Вони допомагають уникати помилок, а також слугують візуальним позначенням того, що певна частина виразу є ідентифікатором.
Функції, оператори, константи та значення
Щоб створити вираз, одних лише ідентифікаторів замало – потрібно також виконувати певну дію. Щоб у виразі виконувалися певні дії, використовуються функції, оператори й константи.
Функції
Функція – це процедура, яку можна використовувати у виразі. Деякі функції, наприклад Date, можуть працювати без вхідних даних. Однак для більшості функцій потрібно вводити дані, які називаються аргументами.
У прикладі, наведеному на початку цієї статті, у функції DatePart використовуються два аргументи: аргумент "інтервал" зі значенням "Of"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 ".
Значення
У виразах можна використовувати значення-літерали, наприклад число 1254 або рядок "Введіть число від 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), через що вираз не працюватиме в браузері.
Використання побудовника виразівЗагальні відомості про виразиПобудова виразуПриклади виразів