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

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

У цій статті

Форми та звіти

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

Примітка.    Вирази також можна використовувати у формі або звіті під час виділення даних за допомогою умовного форматування.

Операції з текстом

Вирази з таблиці нижче створюють обчислюваний елемент керування за допомогою операторів & (амперсанд) і + (плюс), які об’єднують текстові рядки, вбудованих функцій, які обробляють текстовий рядок, та інших операцій із текстом.

Вираз

Результат

="N/A"

Відображає фразу "Н/Д".

=[FirstName] & " " & [LastName]

Відображає значення, які містяться в полях таблиці "Ім’я" та "Прізвище". У цьому прикладі оператор & застосовується, щоб об’єднати поля "Ім’я" та "Прізвище" з пробілом між ними (у лапках).

=Left([ProductName], 1)

За допомогою функції Left відображає перший символ значення поля або елемента керування "НазваТовару".

=Right([AssetCode], 2)

За допомогою функції Right відображає 2 останні символи значення поля або елемента керування "КодАктиву".

=Trim([Address])

За допомогою функції Trim відображає значення елемента керування "Адреса" без пробілів на початку та в кінці.

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

За допомогою функції IIf відображає значення елементів керування "Місто" й "ПоштовийІндекс", якщо елемент керування "Область" має Null-значення. В іншому випадку відображає значення елементів керування "Місто", "Область" і "ПоштовийІндекс", розділені пробілами.

=[City] & (" " + [Region]) & " " & [PostalCode]

За допомогою оператора + і розповсюдження Null-значення відображаються значення елементів керування "Місто" й "Поштовий індекс", якщо поле або елемент керування "Область" має Null-значення. В іншому випадку відображаються значення полів або елементів керування "Місто", "Область" та "ПоштовийІндекс", розділені пробілами.

Розповсюдження Null-значення означає, що вираз отримує Null-значення, якщо будь-який із його компонентів має Null-значення. Оператор + підтримує розповсюдження Null-значення, а оператор & – ні.

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

Верхні та нижні колонтитули

Щоб відобразити або надрукувати номери сторінок у формах і звітах, використовуються властивості Page (Сторінка) і Pages (Сторінки). Вони доступні лише під час друку або попереднього перегляду, тому не відображаються на аркуші властивостей форми чи звіту. Щоб скористатися цими властивостями, зазвичай потрібно розмістити текстове поле в розділі верхнього або нижнього колонтитула форми чи звіту, а потім задати вираз, як у наведеній нижче таблиці.

Докладні відомості про використання колонтитулів у формах і звітах див. в статті Вставлення у форму або звіт номерів сторінок.

Вираз

Результат

=[Page]

1

="Page " & [Page]

Сторінка 1

="Page " & [Page] & " of " & [Pages]

Сторінка 1 із 3

=[Page] & " of " & [Pages] & " Pages"

1 з 3 стор.

=[Page] & "/" & [Pages] & " Pages"

1/3 стор.

=[Country/region] & " - " & [Page]

Україна – 1

=Format([Page], "000")

001

="Printed on: " & Date()

Дата друку: 31.12.2017

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

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

Вирази дають змогу додавати, віднімати, множити й ділити значення з кількох полів або елементів керування. За допомогою виразів також можна виконувати арифметичні операції з датами. Наприклад, у вас є поле таблиці "Дата й час" під назвою "ПотрібнаДата". У полі (або елементі керування, прив’язаному до поля) вираз =[RequiredDate] - 2 повертає значення дати й часу, що на два дні раніше, ніж поточні значення в полі "ПотрібнаДата".

Вираз

Результат

=[Subtotal]+[Freight]

Сума значень у полях або елементах керування "ПроміжнийПідсумок" і "ВартістьДоставки".

=[RequiredDate]-[ShippedDate]

Інтервал між значеннями дат у полях або елементах керування "ПотрібнаДата" й "ДатаДоставки".

=[Price]*1.06

Добуток значення в полі або елементі керування "Ціна" та коефіцієнта 1,06 (додає 6 відсотків до значення "Ціна").

=[Quantity]*[Price]

Добуток значень у полях або елементах керування "Кількість" і "Ціна".

=[EmployeeTotal]/[CountryRegionTotal]

Частка значень у полях або елементах керування "ЗагальнаКількістьПрацівників" і "ЗагальнаКількістьКраїнАбоРегіонів".

Примітка.    Якщо у виразі використовується арифметичний оператор (+, -, * і /), а один з елементів керування у виразі має Null-значення, результат усього виразу матиме Null-значення – це називається розповсюдженням Null-значення. Якщо записи в одному з елементів керування, використаному у виразі, можуть мати Null-значення, щоб уникнути розповсюдження Null-значення, перетворіть Null-значення на нуль за допомогою функції Nz, наприклад =Nz([Subtotal])+Nz([Freight]).

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

Значення в інших елементах керування

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

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

Вираз

Результат

=Forms![Orders]![OrderID]

Значення елемента керування "ІДЗамовлення" у формі "Замовлення".

=Forms![Orders]![Orders Subform].Form![OrderSubtotal]

Значення елемента керування "ПроміжнийПідсумок" у підформі під назвою "Підформа замовлень", розташованій у формі "Замовлення".

=Forms![Orders]![Orders Subform]![ProductID].Column(2)

Значення третього стовпця в багатостовпцевому списку "ІДТовару" в підформі під назвою "Підформа замовлень", розташованій у формі "Замовлення" (зверніть увагу, що 0 позначає перший стовпець, 1 – другий стовпець і т. д.).

=Forms![Orders]![Orders Subform]![Price] * 1.06

Добуток значення елемента керування "Ціна" в підформі під назвою "Підформа замовлень", розташованій у формі "Замовлення", і коефіцієнта 1,06 (додає 6 відсотків до елемента керування "Ціна").

=Parent![OrderID]

Значення елемента керування "ІДЗамовлення" в головній або батьківській формі поточної підформи.

Вирази в таблиці нижче показують деякі способи, як можна використовувати обчислювані елементи керування у звітах. Вирази посилаються на властивість Report (Звіт).

Вираз

Результат

=Report![Invoice]![OrderID]

Значення елемента керування "ІДЗамовлення" у звіті під назвою "Рахунок-фактура".

=Report![Summary]![Summary Subreport]![SalesTotal]

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

=Parent![OrderID]

Значення елемента керування "ІДЗамовлення" в головному або батьківському звіті поточного підзвіту.

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

Кількість, сума та середні значення

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

Вирази в таблиці нижче показують деякі зі способів використання таких функцій, як Avg, Count і Sum.

Вираз

Опис

=Avg([Freight])

За допомогою функції Avg відображає середнє значення поля таблиці або елемента керування "ВартістьДоставки".

=Count([OrderID])

За допомогою функції Count відображає кількість записів в елементі керування "ІДЗамовлення".

=Sum([Sales])

За допомогою функції Sum відображає суму значень в елементі керування "Продажі".

=Sum([Quantity]*[Price])

За допомогою функції Sum відображає суму добутків значень в елементах керування "Кількість" і "Ціна".

=[Sales]/Sum([Sales])*100

Відображає відсоткове значення продажів, отримане діленням значення елемента керування "Продажі" на суму всіх значень елемента керування "Продажі".

Якщо для властивості "Формат" елемента керування встановлено значення "Відсотковий", приберіть із виразу частину *100.

Докладні відомості про використання агрегатних функцій і підсумовування значень у полях і стовпцях див. в статтях Обчислення суми даних із використанням запиту, Обчислення даних із використанням запиту, Підрахування кількості рядків у таблиці даних і Відображення підсумків стовпців у таблиці даних.

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

Агрегатні функції SQL

Функції SQL (або "агрегатні функції домену") використовуються, коли потрібно обчислити суму або підрахувати кількість значень вибірково. "Домен" складається з одного чи кількох полів в одній чи кількох таблицях або з одного чи кількох елементів керування в одній чи кількох формах або звітах. Наприклад, ви можете зіставити значення в полі таблиці зі значеннями в елементі керування форми.

Вираз

Опис

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]"))

За допомогою функції DLookup повертає значення поля "Контакт" у таблиці "Постачальники", якщо значення поля "Ідентифікатор постачальника" в таблиці збігається зі значенням елемента керування "Ідентифікатор постачальника" у формі "Постачальники".

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID])

За допомогою функції DLookup повертає значення поля "Контакт" у таблиці "Постачальники", якщо значення поля "Ідентифікатор постачальника" в таблиці збігається зі значенням елемента керування "Ідентифікатор постачальника" у формі "Нові постачальники".

=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'")

За допомогою функції DSum повертає суму значень у полі "ОбсягЗамовлення" в таблиці "Замовлення", якщо ідентифікатор клієнта має значення RATTC.

=DCount("[Retired]","[Assets]","[Retired]=Yes")

За допомогою функції DCount повертає кількість значень "Так" у полі "Списані" (поле типу "Так/Ні") таблиці "Активи".

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

Операції з датами

Відстеження значень дати й часу дуже часто використовується в базах даних. Наприклад, ви можете обчислити, скільки днів минуло з дати рахунка-фактури, щоб визначити термін дебіторської заборгованості. Значення дати й часу можна відформатувати різними способами, як показано в таблиці нижче.

Вираз

Опис

=Date()

За допомогою функції Date відображає поточну дату у форматі mm-dd-yy, де mm – це місяць (1–12), dd – це день (1–31), а yy – це дві останні цифри року (1980–2099).

=Format(Now(), "ww")

За допомогою функції Format відображає номер тижня в поточному році, де ww має значення від 1 до 53.

=DatePart("yyyy", [OrderDate])

За допомогою функції DatePart відображає чотиризначне значення року з елемента керування "ДатаЗамовлення".

=DateAdd("y", -10, [PromisedDate])

За допомогою функції DateAdd відображає дату, яка передує значенню елемента керування "ПлановаДата" на 10 днів.

=DateDiff("d", [OrderDate], [ShippedDate])

За допомогою функції DateDiff відображає різницю днів між значеннями елементів керування "ДатаЗамовлення" та "ДатаДоставки".

=[InvoiceDate] + 30

За допомогою арифметичних операцій із датами обчислює дату через 30 днів після дати в полі або елементі керування "ДатаРахунка".

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

Умови лише з двома значеннями

У прикладах виразів із таблиці нижче використано функцію IIf, щоб повернути одне з двох можливих значень. Функція IIf має три аргументи. Перший аргумент – це вираз, який має повернути значення True або False. Другий аргумент – це значення, яке повертається для істинного виразу, а третій аргумент – це значення, яке повертається для хибного виразу.

Вираз

Опис

=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed")

За допомогою функції IIf (Immediate If) відображає повідомлення "Запит підтверджено", якщо елемент керування "Підтверджено" має значення Yes. В іншому разі відображає повідомлення "Order Not Confirmed.".

=IIf(IsNull([Country/region]), " ", [Country])

За допомогою функцій IIf та IsNull відображає пустий рядок, якщо елемент керування "Країна або регіон" має Null-значення. В іншому випадку відображає значення елемента керування "Країна або регіон".

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

За допомогою функцій IIf та IsNull відображає значення елементів керування "Місто" й "Поштовий індекс", якщо елемент керування "Область" має Null-значення. В іншому випадку відображає значення полів або елементів керування "Місто", "Область" і "ПоштовийІндекс".

=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

За допомогою функцій IIf та IsNull відображає повідомлення "Можливо, дату не вказано", якщо різниця потрібної дати й дати доставки є Null-значенням. В іншому випадку відображає інтервал між значеннями дати в елементах керування "ПотрібнаДата" й "ДатаДоставки".

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

Запити та фільтри

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

Щоб обмежити записи, з якими ви працюєте, додайте умову до запиту. Наприклад, скориставшись оператором Between, ви можете ввести дати початку й завершення та обмежити результати запиту замовленнями, доставленими в період між цими датами.

Нижче наведено приклади виразів для використання в запитах.

Операції з текстом

Вирази з таблиці нижче створюють обчислюване поле за допомогою операторів & і + (об’єднують текстові рядки), вбудованих функцій (обробляють текстовий рядок) та інших операцій із текстом.

Вираз

Опис

FullName: [FirstName] & " " & [LastName]

Створює поле "ПовнеІм’я", яке відображає значення полів "Ім’я" та "Прізвище" з пробілом між ними.

Address2: [City] & " " & [Region] & " " & [PostalCode]

Створює поле "Адреса2", яке відображає значення полів "Місто", "Область" і "ПоштовийІндекс" із пробілами між ними.

ProductInitial: Left([ProductName], 1)

Створює поле "ПершаБукваТовару", а потім за допомогою функції Left відображає в ньому перший символ значення в полі "НазваТовару".

TypeCode: Right([AssetCode], 2)

Створює поле "КодТипу", а потім за допомогою функції Right відображає в ньому останні два символи значень у полі "КодАктиву".

AreaCode: Mid([Phone],2,3)

Створює поле "КодМіста", а потім за допомогою функції Mid відображає в ньому три символи, починаючи з другого символу значення в полі "Телефон".

ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100

Призначає обчислюваному полю ім’я "РозширенаЦіна" та використовує функцію CCur для обчислення загальної суми елемента рядка з урахуванням знижки.

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

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

Вирази дають змогу додавати, віднімати, множити й ділити значення з кількох полів або елементів керування. Арифметичні операції також можна виконувати над датами. Наприклад, у вас є поле типу "Дата й час" під назвою "ПотрібнаДата". Вираз =[RequiredDate] - 2 повертає значення дати й часу, що на два дні раніше, ніж значення в полі "ПотрібнаДата".

Вираз

Опис

PrimeFreight: [Freight] * 1.1

Створює поле "ПідвищенаВартістьДоставки", а потім відображає в ньому вартість доставки плюс 10 відсотків.

OrderAmount: [Quantity] * [UnitPrice]

Створює поле "ОбсягЗамовлення", а потім відображає в ньому добуток значень у полях "Кількість" і "ЦінаЗаОдиницю".

LeadTime: [RequiredDate] - [ShippedDate]

Створює поле "ЧасВипередження", а потім відображає в ньому різницю значень у полях "ПотрібнаДата" й "ДатаДоставки".

TotalStock: [UnitsInStock]+[UnitsOnOrder]

Створює поле "ЗагальнаКількістьЗапасів", а потім відображає в ньому суму значень у полях "ОдиницьНаСкладі" та "ОдиницьЗамовлено".

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100

Створює поле "ВідсотокВартостіДоставки", а потім відображає в ньому відсоткове значення платежів за доставку в кожному проміжному підсумку. У цьому виразі використано функцію Sum, щоб підсумувати значення в полі "ВартістьДоставки", а потім цей підсумок ділиться на суму значень у полі "ПроміжнийПідсумок".

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

Докладні відомості про створення запиту підсумків див. в статті Обчислення суми даних із використанням запиту.

Якщо для властивості Формат поля встановлено значення Відсотковий, приберіть частину *100.

Докладні відомості про використання агрегатних функцій і підсумовування значень у полях і стовпцях див. в статтях Обчислення суми даних із використанням запиту, Обчислення даних із використанням запиту, Підрахування кількості рядків у таблиці даних і Відображення підсумків стовпців у таблиці даних.

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

Операції з датами

Майже всі бази даних зберігають і відстежують дати й час. Щоб працювати з датами й часом у програмі Access, потрібно встановити для полів дати й часу в таблицях тип даних "Дата й час". У програмі Access можна виконувати арифметичні обчислення над датами. Наприклад, ви можете обчислити, скільки днів минуло з дати рахунка-фактури, щоб визначити термін дебіторської заборгованості.

Вираз

Опис

LagTime: DateDiff("d", [OrderDate], [ShippedDate])

Створює поле "Час затримки", а потім за допомогою функції DateDiff відображає в ньому кількість днів між датою замовлення та датою доставки.

YearHired: DatePart("yyyy",[HireDate])

Створює поле "РікНайму", а потім за допомогою функції DatePart відображає в ньому рік, коли найнято кожного працівника.

MinusThirty: Date( )- 30

Створює поле "МінусТридцять", а потім за допомогою функції Date відображає в ньому дату, що на 30 днів передує поточній.

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

Агрегатні функції SQL

Вирази в таблиці нижче використовують функції SQL (мова структурованих запитів), щоб агрегувати й підсумовувати дані. Ці функції (наприклад, Sum, Count і Avg) часто називають агрегатними.

Окрім звичайних агрегатних функцій, у програмі Access також передбачено "доменні" агрегатні функції, за допомогою яких можна підсумувати або порахувати значення вибірково. Наприклад, ви можете порахувати значення лише в певному діапазоні або взяти значення з іншої таблиці. До доменних агрегатних функцій належать DSum, DCount і DAvg.

Щоб обчислити загальну суму, часто потрібно створити запит підсумків (наприклад, щоб підсумувати значення групи). Щоб увімкнути запит підсумків із бланка запиту, у меню Подання виберіть елемент Підсумки.

Вираз

Опис

RowCount: Count(*)

Створює поле "Кількість рядків", а потім за допомогою функції Count рахує кількість записів у запиті, зокрема записи з пустими полями (з Null-значенням).

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100

Створює поле "ВідсотокВартостіДоставки", а потім обчислює відсоткове значення платежів за доставку в кожному проміжному підсумку, поділивши суму значень у полі "ВартістьДоставки" на суму значень у полі "ПроміжнийПідсумок" (у цьому прикладі використовується функція Sum).

Цей вираз потрібно використовувати із запитом підсумків. Якщо для властивості Формат поля встановлено значення Відсотковий, приберіть частину *100.

Докладні відомості про створення запиту підсумків див. в статті Обчислення суми даних із використанням запиту.

AverageFreight: DAvg("[Freight]", "[Orders]")

Створює поле "СередняВартістьДоставки", а потім за допомогою функції DAvg обчислює середню вартість доставки для всіх замовлень, об’єднаних у запиті підсумків.

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

Поля, у яких відсутні дані

Наведені тут вирази працюють із полями, у яких потенційно відсутні відомості, наприклад, які містять Null-значення (невідомі або невизначені значення). Ви часто стикаєтеся з Null-значеннями: це може бути невідома ціна нового товару або значення, яке ваші колеги забули додати до замовлення. Можливість знаходити й обробляти Null-значення може бути критично важливою частиною операцій баз даних, а вирази в наведеній нижче таблиці демонструють деякі з поширених способів обробки Null-значень.

Вираз

Опис

CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion])

Створює поле "ПоточнаКраїнаАбоРегіон", а потім за допомогою функцій IIf та IsNull відображає пустий рядок у цьому полі, якщо поле "КраїнаАбоРегіон" містить Null-значення. В іншому випадку відображає вміст поля "КраїнаАбоРегіон".

LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

Створює поле "ЧасВипередження", а потім за допомогою функцій IIf та IsNull відображає повідомлення "Можливо, дату не вказано", якщо поле "ПотрібнаДата" або "ДатаДоставки" має Null-значення. В іншому випадку відображає різницю дат.

SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales])

Створює поле "Продажі за півріччя", а потім відображає в ньому підсумок значень у полях "Продажі за I квартал" і "Продажі за II квартал", спершу перетворивши всі Null-значення на нуль за допомогою функції Nz.

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

Обчислювані поля з вкладеними запитами

Обчислюване поле також можна створити за допомогою вкладеного запиту, або підзапиту. Вираз у таблиці нижче – це один із прикладів обчислюваного поля, створеного на основі підзапиту.

Вираз

Опис

Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID])

Створює поле "Категорія", а потім відображає в ньому ім’я категорії, якщо поля "ІДКатегорії" в таблицях "Категорії" та "Товари" однакові.

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

Зіставлення текстових значень

Приклади виразів у цій таблиці демонструють умови, які повністю або частково відповідають текстовим значенням.

Поле

Вираз

Опис

МістоДоставки

"London"

Відображає замовлення, доставлені до Києва.

МістоДоставки

"London" Or "Hedge End"

За допомогою оператора Or відображає замовлення, доставлені до Києва або Білої Церкви.

КраїнаАбоРегіонДоставки

In("Canada", "UK")

За допомогою оператора In відображає замовлення, доставлені до Польщі або України.

КраїнаАбоРегіонДоставки

Not "USA"

За допомогою оператора Not відображає замовлення, доставлені до всіх країн або регіонів, окрім Росії.

НазваТовару

Not Like "C*"

За допомогою оператора Not і символу узагальнення * відображає товари, назви яких не починаються з букви С.

НазваКомпанії

>="N"

Відображає замовлення, доставлені до компаній, назви яких починаються з букв від N до Z.

КодТовару

Right([ProductCode], 2)="99"

За допомогою функції Right відображає замовлення зі значеннями "КодТовару", які закінчуються на 99.

Отримувач

Like "S*"

Відображає замовлення, доставлені до клієнтів, імена яких починаються з букви S.

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

Зіставлення умов дат

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

Поле

Вираз

Опис

ДатаДоставки

#2/2/2017#

Відображає замовлення, доставлені 2 лютого 2017 р.

ДатаДоставки

Date()

Відображає замовлення, доставлені сьогодні.

ПотрібнаДата

Between Date( ) And DateAdd("m", 3, Date( ))

За допомогою оператора Between...And та функцій DateAdd і Date відображає замовлення за тримісячний період від сьогоднішньої дати.

ДатаЗамовлення

< Date( ) - 30

За допомогою функції Date відображає замовлення, зроблені більше 30 днів тому.

ДатаЗамовлення

Year([OrderDate])=2017

За допомогою функції Year відображає замовлення, зроблені в 2017 р.

ДатаЗамовлення

DatePart("q", [OrderDate])=4

За допомогою функції DatePart відображає замовлення за четвертий календарний квартал.

ДатаЗамовлення

DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1

За допомогою функцій DateSerial, Year та Month відображає замовлення за останній день кожного місяця.

ДатаЗамовлення

Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now())

За допомогою функцій Year та Month і оператора And відображає замовлення за поточний рік і місяць.

ДатаДоставки

Between #1/5/2017# And #1/10/2017#

За допомогою оператора Between...And відображає замовлення, доставлені не раніше 5 січня 2017 р. та не пізніше 10 січня 2017 р.

ПотрібнаДата

Between Date( ) And DateAdd("M", 3, Date( ))

За допомогою оператора Between...And відображає замовлення за тримісячний період від сьогоднішньої дати.

ДатаНародження

Month([BirthDate])=Month(Date())

За допомогою функцій Month і Date відображає працівників, дні народження яких припадають на цей місяць.

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

Пошук відсутніх даних

Вирази в таблиці нижче мають справу з полями, які містять потенційно відсутні дані, тобто полями, які можуть містити Null-значення або рядок нульової довжини. Null-значення позначає відсутність інформації. Це не нуль і ніяке інше значення. Програма Access підтримує поняття відсутньої інформації, тому що це важливо для цілісності бази даних. У реальному світі ми часто чогось не знаємо, навіть якщо це лише тимчасово (наприклад, поки що не визначену ціну на новий товар). Таким чином, у базі даних, яка моделює реальну сутність, як-от компанію, має бути змога записувати дані як відсутні. Щоб дізнатися, чи поле або елемент керування містить Null-значення, можна скористатися функцією IsNull, а щоб перетворити Null-значення на нуль – функцією Nz.

Поле

Вираз

Опис

РегіонДоставки

Is Null

Відображає замовлення для клієнтів, для яких поле "РегіонДоставки" має Null-значення (пусте).

РегіонДоставки

Is Not Null

Відображає замовлення для клієнтів, для яких поле "РегіонДоставки" має якесь значення.

Факс

""

Відображає замовлення для клієнтів, які не мають факсимільного пристрою, що позначено значенням рядка нульової довжини в полі "Факс", а не Null-значенням (відсутнім значенням).

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

Зіставлення шаблонів записів за допомогою оператора Like

Оператор Like дуже зручний, коли потрібно підібрати рядки за певним шаблоном, тому що з оператором Like можна використовувати символи узагальнення та визначити шаблони, з якими має звірятись Access. Наприклад, символ узагальнення * (зірочка) відповідає послідовності символів будь-якого типу та дає змогу знайти всі імена, які починаються з певної букви. Наприклад, за допомогою виразу Like "S*" ви можете знайти всі імена, які починаються з букви С. Докладніше див. в статті Оператор Like.

Поле

Вираз

Опис

Отримувач

Like "S*"

Знаходить усі записи в полі "Отримувач", які починаються з букви С.

Отримувач

Like "*Imports"

Знаходить усі записи в полі "Отримувач", які закінчуються словом "імпорт".

Отримувач

Like "[A-D]*"

Знаходить усі записи в полі "Отримувач", які починаються з букви А, Б, В або Г.

Отримувач

Like "*ar*"

Знаходить усі записи в полі "Отримувач", які містять буквосполучення "но".

Отримувач

Like "Богдан Козя?"

Знаходить усі записи в полі "Отримувач", які містять слово "Богдан", після якого йде рядок із п’яти букв, перші чотири з яких – це "Козя", а остання буква не відома.

Отримувач

Not Like "A*"

Знаходить усі записи в полі "Отримувач", які не починаються з букви А.

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

Зіставлення рядків за допомогою агрегатних функцій SQL

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

Поле

Вираз

Опис

ВартістьДоставки

> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))

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

Кількість

> DAvg("[Quantity]", "[Order Details]")

За допомогою функції DAvg відображає товари, замовлені в кількості, що перевищує середню кількість замовлення.

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

Зіставлення полів за допомогою вкладених запитів

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

Поле

Вираз

Відображення

ЦінаЗаОдиницю

(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup")

Товари з такою ж ціною, що й анісовий сироп.

ЦінаЗаОдиницю

>(SELECT AVG([UnitPrice]) FROM [Products])

Товари, ціна за одиницю яких вища середньої.

Оклад

> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*"))

Оклад кожного торгового представника, чий оклад перевищує оклад усіх працівників зі словом "Керівник" або "Віце-президент" у посаді.

ВартістьЗамовлення: [ЦінаЗаОдиницю] * [Кількість]

> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details])

Замовлення, вартість яких перевищує середнє значення замовлення.

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

Оновлення запитів

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

Докладні відомості про створення запитів на оновлення див. в статті Створення й виконання запиту на оновлення.

Поле

Вираз

Результат

Посада

"Salesperson"

Змінює текстове значення на "Торговий представник".

Початок проекту

#8/10/17#

Змінює значення дати на 10 серпня 2017 р.

Списані

Yes

У полі типу "Так/Ні" змінює значення "Ні" на "Так".

Номер партії

"PN" & [PartNumber]

Додає "НП" до початку номера кожної вказаної партії.

Підсумок для позиції

[UnitPrice] * [Quantity]

Множить ціну за одиницю товару на кількість.

ВартістьДоставки

[Freight] * 1.5

Збільшує вартість доставки на 50 відсотків.

Продажі

DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID])

Якщо значення "ІДТовару" в поточній таблиці відповідають значенням "ІДТовару" в таблиці "Дані замовлення", оновлює загальний обсяг продажів на основі добутку кількості товару та ціни за одиницю.

ПоштовийІндексДоставки

Right([ShipPostalCode], 5)

Видаляє крайні ліві символи, залишаючи п’ять символів праворуч.

ЦінаЗаОдиницю

Nz([UnitPrice])

Замінює Null-значення (невизначене або невідоме) у полі "ЦінаЗаОдиницю" на нуль (0).

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

Інструкції SQL

Мова структурованих запитів, або SQL, – це мова запитів, що використовується в програмі Access. Кожен запит, створений у режимі конструктора запиту, можна виразити за допомогою мови SQL. Щоб переглянути SQL-оператор для будь-якого запиту, у меню Подання виберіть елемент Режим SQL. У таблиці нижче показано приклади SQL-операторів із виразами.

Інструкція SQL із виразом

Результат

SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio";

Відображає значення в полях "Ім’я" та "Прізвище" для працівників із прізвищем "Паляниця".

SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID];

Відображає значення в полях "ІДТовару" та "НазваТовару" в таблиці "Товари" для записів, у яких значення "ІДКатегорії" відповідає значенню "ІДКатегорії" з відкритої форми "Нові товари".

SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000;

Обчислює середню розширену ціну для замовлень, у яких значення поля "РозширенаЦіна" перевищує 1000, а потім відображає її в полі під назвою "Середня розширена ціна".

SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10;

У полі "КількістьІдентифікаторівТовару" відображає загальну кількість товарів для категорій, у яких більше 10 товарів.

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

Вирази в таблицях

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

Стандартні значення полів

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

Поле

Вираз

Стандартне значення поля

Кількість

1

1

Регіон

"MT"

Закарпаття

Регіон

"New York, N.Y."

Сумська обл. (зверніть увагу, що значення з пунктуаційними знаками потрібно брати в лапки).

Факс

""

Рядок нульової довжини вказує, що за замовчуванням це поле має бути пустим, а не містити Null-значення

Дата замовлення

Date( )

Поточна дата

Термін

Date() + 60

Дата через 60 днів після сьогоднішньої

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

Правила перевірки полів

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

Приклади в наведеній нижче таблиці демонструють вирази правил перевірки для властивості Правило перевірки та пов’язаний текст для властивості Текст перевірки.

Властивість "Правило перевірки"

Властивість "Текст перевірки"

<> 0

Введіть ненульове значення.

0 Or > 100

Значення має дорівнювати 0 або бути більше 100.

Like "K???"

Значення має складатися з чотирьох символів і починатися з букви К.

< #1/1/2017#

Введіть дату до 01.01.2017.

>= #1/1/2017# And < #1/1/2008#

Дата має бути в 2017 році.

Докладні відомості про перевірку даних див. в статті Створення правила перевірки для перевірки даних у полі.

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

Вирази в макросах

Інколи потрібно виконати дію або послідовність дій у макросі, лише якщо певна умова істинна. Припустімо, наприклад, що дію потрібно запускати, лише якщо значення текстового поля "Лічильник" дорівнює 10. Щоб визначити умову, потрібно в макросі в стовпці Умова скористатися таким виразом:

[Counter]=10

Вираз стовпця Умова, як і властивість Правило перевірки, є логічним виразом. Його результатом має бути значення True або False. Дія відбувається, лише коли умова повертає значення "Істина".

Підказка.    Щоб тимчасово проігнорувати дію в Access, введіть False як умову. Це може стати в пригоді, коли ви шукатимете помилки в макросі.

Вираз для виконання дії

If

[City]="Paris"

Одеса – це значення міста в полі форми, з якої запущено макрос.

DCount("[OrderID]", "Orders") > 35

У полі "ІДЗамовлення" таблиці "Замовлення" міститься більше 35 записів.

DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3

У таблиці "Дані замовлення" є більше трьох записів, для яких поле "ІДЗамовлення" таблиці відповідає полю "ІДЗамовлення" у формі "Замовлення".

[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017#

Значення поля "ДатаДоставки" у формі, з якої запущено макрос, входить у період від 2 лютого 2017 р. до 2 березня 2017 р.

Forms![Products]![UnitsInStock] < 5

Значення поля "ОдиницьНаСкладі" у формі "Товари" менше за 5.

IsNull([FirstName])

Поле "Ім’я" у формі, з якої запущено макрос, має Null-значення (значення відсутнє). Цей вираз еквівалентний виразу: [Ім’я] Is Null.

[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100

Поле "КраїнаАбоРегіон" у формі, з якої запущено макрос, має значення "Україна", а значення поля "УсьогоЗамовлень" у формі "ЗагальнийОбсягПродажів" перевищує 100.

[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5

Поле "КраїнаАбоРегіон" у формі, з якої запущено макрос, має значення "Франція", "Італія" або "Іспанія", а поштовий індекс не складається з 5 символів.

MsgBox("Confirm changes?",1)=1

У діалоговому вікні, яке відобразить функція MsgBox, натисніть кнопку OK. Якщо в цьому діалоговому вікні натиснути кнопку Скасувати, програма Access пропустить дію.

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

Див. також

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

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

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

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

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

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

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

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

×