Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Щоб додати умови до запиту Access, відкрийте його в режимі конструктора та виберіть поля (стовпці), для яких потрібно вказати умови. Якщо поле відсутнє у бланку, двічі клацніть поле, щоб додати його, а потім введіть умову в рядок Критерії відповідного поля. Якщо ви не знаєте, як це зробити, ознайомтеся зі статтею Основні відомості про запити.

Умова запиту – це вираз, який Access порівнює зі значеннями полів запиту, щоб визначити, чи потрібно включати запис, що містить те чи інше значення. Наприклад, = "Харків" – це вираз, який Access може порівняти зі значеннями в текстовому полі в запиті. Якщо значення цього поля в певному записі дорівнює "Харків", програма Access включає запис до результатів запиту.

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

У цій статті

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

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

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

Умови

Опис

>25 і <50

Ця умова застосовується до числового поля, наприклад "Ціна" або "Кількість_наявних_одиниць". Вона дає змогу включити тільки записи, у яких поле "Ціна" або "Кількість_наявних_одиниць" містить значення більше 25 й менше 50.

DateDiff ("yyyy"; [День_народження]; Date()) > 30

Ця умова застосовується до поля дати й часу, наприклад "День_народження". До результатів запиту буде включено лише записи, у яких кількість років між датою народження особи й сьогоднішньою датою більша 30.

Is Null

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

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

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

Тепер розгляньмо, куди та як додавати умови. Щоб додати умови до запиту, відкрийте запит у режимі конструктора. Після цього визначте поля, для яких потрібно вказати умови. Якщо поле відсутнє в бланку, перетягніть це поле з вікна конструктора запитів до макета запиту або двічі клацніть це поле (якщо двічі клацнути поле, його буде автоматично додано до наступного пустого стовпця в макеті запиту). Нарешті введіть умови в рядку Критерії.

Щоб поєднати умови для різних полів у рядку Критерії, використовується оператор AND. Іншими словами, умови, указані в полях "Місто" та "День_народження", інтерпретуються так:

Місто = "Харків" AND День_народження < DateAdd (" yyyy "; -40; Date())

Умови для полів «Місто» й «Дата_народження»

1. Поля "Місто" та "Дата_народження" містять умови.

2. Цій умові відповідатимуть тільки записи, у яких поле "Місто" має значення "Харків".

3. Цій умові відповідатимуть тільки записи тих, кому принаймні 40 років.

4. До результату увійдуть тільки ті записи, які відповідають обом умовам.

Можливо, іноді потрібно використовувати тільки один із цих критеріїв. Іншими словами: як вводити альтернативні умови?

Якщо є альтернативні умови або два набори незалежних умов і задовольнятися має хоча б один із них, потрібно використовувати в бланку рядки Критерії та Або.

Альтернативні умови

1. Умову "Місто" вказано в рядку "Умови".

2. Умову "День_народження" вказано в рядку "Або".

Щоб об’єднати умови, зазначені в рядках Критерії та Або, використовується оператор OR, як показано нижче:

Місто = "Харків" OR Дата_народження < DateAdd (" yyyy ", -40, Date())

Якщо потрібно вказати більше альтернатив, використайте рядки під рядком Або.

Перш ніж продовжити вивчення прикладів, візьміть до уваги таке:

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

  • Якщо поля в умовах не змінюються, а потрібні значення змінюються часто, можна створити параметризований запит. Для параметризованого запиту в користувача запитуються значення поля, які використовуються, щоб створити умову запиту. Докладні відомості про параметризовані запити див. в статті Використання параметрів у запитах і звітах.

Умови для текстових полів, полів гіперпосилань і Memo

Далі наведено приклади для поля "Країна/регіон" у запиті на основі таблиці, у якій зберігаються відомості про контакти. Умова вказується в рядку Критерії для поля в бланку.

Умови для поля "Країна/регіон"

Умова, указана для поля гіперпосилання, за замовчуванням застосовується до частини з текстом, що відображається, у значенні поля. Щоб указати умову для частини значення, що містить URL-адресу призначення, скористайтеся виразом HyperlinkPart. Синтаксис цього виразу такий: HyperlinkPart([Таблиця1].[Поле1],1) = "http://www.microsoft.com/", де "Таблиця1" – це ім’я таблиці, яка містить поле гіперпосилання, "Поле1" – гіперпосилання, а http://www.microsoft.com – URL-адреса, яку потрібно зіставити.

Тип запису

Умова

Результат запиту

Точно відповідають значенню, наприклад "Китай".

"Китай"

Повертає записи, у яких поле "Країна/регіон" має значення "Китай".

Не відповідають значенню, наприклад "Мексика".

Not "Мексика"

Повертає записи, у яких поле "Країна/регіон" має значення, відмінне від "Мексика".

Починаються з указаного тексту, наприклад "У".

Like У*

Повертає записи для всіх країн або регіонів, назви яких починаються з літери "У", наприклад Уруґвай, Україна тощо.

Примітка.: Зірочка (*), застосована у виразі, означає будь-який рядок символів (її також називають символом узагальнення). Список таких символів міститься в статті Довідка із символів узагальнення Access.

Не починаються з указаного тексту, наприклад з "У".

Not Like У*

Повертає записи для всіх країн і регіонів, назви яких починаються не із символу "У".

Містять указаний текст, наприклад "Корея".

Like "*Корея*"

Повертає записи для всіх країн і регіонів, назви яких містять рядок "Корея".

Не містять указаний текст, наприклад "Корея".

Not Like "*Корея*"

Повертає записи для всіх країн і регіонів, назви яких не містять текст "Корея".

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

Like "*ина"

Повертає записи для всіх країн і регіонів, назви яких закінчуються на "ина", наприклад "Аргентина" або "Боснія та Герцеґовина".

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

Not Like "*ина"

Повертає записи для всіх країн і регіонів, назви яких не закінчуються на "ина", як "Аргентина" або "Боснія та Герцеґовина".

Містять Null-значення (значення відсутні).

Is Null

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

Не містять Null-значення.

Is Not Null

Повертає записи, у яких є значення в полі.

Містять рядки нульової довжини.

"" (пара лапок)

Повертає записи, у яких це поле має пусте значення (але не Null-значення). Наприклад, запис про збут до іншого підрозділу може мати пусте значення в полі "Країна/регіон".

Не містять рядки нульової довжини.

Not ""

Повертає записи, у яких поле "Країна/регіон" має непусте значення.

Містять Null-значення або рядки нульової довжини.

"" Or Is Null

Повертає записи, у яких поле не має значення або має пусте значення.

Містять непусте значення.

Is Not Null And Not ""

Повертає записи, у яких значення поля "Країна/регіон" непусте й відмінне від Null-значення.

Слідують за певним значенням, наприклад "Мексика", відсортовані в алфавітному порядку.

>= "Мексика"

Повертає записи для всіх країн і регіонів, починаючи з "Мексика" й до кінця алфавіту.

Містяться в заданому діапазоні, наприклад від А до Г.

Like "[A-Г]*"

Повертає записи для країн і регіонів, назви яких починаються з букв "A"–"Г".

Відповідають одному із двох значень, наприклад "Україна" або "Уруґвай".

"Україна" Or "Уруґвай"

Повертає записи для України та Уруґваю.

Містить одне значення зі списку значень.

In("Франція", "Китай", "Німеччина", "Японія")

Повертає записи для всіх країн і регіонів, зазначених у списку.

Містить певні символи в певній частині значення поля.

Right([Країна/регіон], 1) = "а"

Повертає записи для всіх країн і регіонів, остання буква яких – "а".

Відповідає довжині.

Len([Країна/регіон]) > 10

Повертає записи для країн і регіонів, назва яких довша 10 символів.

Відповідає певному шаблону.

Like "Ґві???"

Повертає записи для країн і регіонів, таких як "Ґвіана" та "Ґвінея", назви яких складаються із шести символів, перші три з яких – "Ґві".

Примітка.: Символи ? та _, коли використовуються у виразі, означають окремий символ – їх також називають символами узагальнення. Символ _ не можна використовувати в одному виразі з символом ? або із символом узагальнення *. Символ _ можна використовувати у виразі, який також містить символ узагальнення %.

Умови для полів "Число", "Грошова одиниця" та "Автонумерація"

Далі наведено приклади для поля "Ціна за прейскурантом" у запиті на основі таблиці, у якій зберігаються відомості про продукти. Умова вказується в рядку Критерії для поля в бланку запиту.

Умови для поля "Вартість_одиниці_товару"

Тип запису

Умова

Результат запиту

Точно відповідають значенню, наприклад 100.

100

Повертає записи, у яких ціна за одиницю продукту дорівнює 100₴.

Не відповідають значенню, наприклад 1000.

Not 1000

Повертає записи, у яких ціна за одиницю продукту не дорівнює 1000₴.

Містять значення, менше за потрібне, наприклад 100.

< 100 <= 100

Повертає записи, у яких ціна за одиницю продукту менша 100₴ (<100). Другий вираз (<=100) відображає записи, у яких ціна за одиницю продукту менша 100₴ або дорівнює 100₴.

Містять значення, більше за потрібне, наприклад 99,99.

>99,99 >=99,99

Повертає записи, у яких ціна за одиницю продукту більша 99,99₴ (>99,99). Другий вираз відображає записи, у яких ціна за одиницю продукту дорівнює 99,99₴ або більша 99,99₴.

Містять одне із двох значень, наприклад 20 або 25.

20 or 25

Повертає записи, у яких ціна за одиницю продукту дорівнює 20₴ або 25₴.

Містять значення, яке входить до діапазону значень.

>49.99 і <99.99 -Або- Від 50 до 100

Повертає записи, у яких ціна за одиницю продукту входить до діапазону від 49,99₴ до 99,99₴ (не включно з цими значеннями).

Містять значення, яке не входить у діапазон.

<50 or >100

Повертає записи, у яких ціна за одиницю продукту не входить діапазону від 50₴ до 100₴.

Містять одне з кількох указаних значень.

In(20, 25, 30)

Повертає записи, у яких ціна за одиницю продукту дорівнює 20₴, 25₴ або 30₴.

Містять значення, яке закінчується певними цифрами.

Like "*4,99"

Повертає записи, у яких ціна за одиницю продукту закінчується на "4,99", наприклад 4,99₴, 14,99₴, 24,99₴ тощо.

Примітка.: Коли символи * та % використовуються у виразі, вони означають буль-яку кількість символів – їх також називають символами узагальнення. Символ % не можна використовувати в одному виразі з символом * або із символом узагальнення ?. Символ % можна використовувати у виразі, який також містить символ узагальнення _.

Містить Null-значення (або значення відсутні).

Is Null

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

Містять значення, відмінне від Null.

Is Not Null

Повертає записи, у яких є значення в полі "Ціна за прейскурантом".

Умови для полів дати й часу

Далі наведено приклади для поля "Дата_замовлення" в запиті на основі таблиці, у якій зберігаються відомості про замовлення. Умова вказується в рядку Критерії для поля в бланку запиту.

Умови “Дата_замовлення”

Тип запису

Умова

Результат запиту

Точно відповідають значенню, наприклад 02.02.2006.

#02.02.2006#

Повертає записи транзакцій, виконаних 2 лютого 2006 р. Обов’язково ставте перед датою та після неї символ #, щоб програма Access могла розрізняти значення дат і текстові рядки.

Не відповідають значенню, наприклад 02.02.2006.

Not #02.02.2006#

Повертає записи транзакцій, виконаних не 2 лютого 2006 р.

Містить значення, що припадають на дати перед певною датою, наприклад 02.02.2006.

< #02.02.2006#

Повертає записи транзакцій, виконаних до 2 лютого 2006 р.

Щоб переглянути транзакції, виконані в цей день або перед ним, використайте оператор <= замість оператора <.

Містить значення, що припадають на дати після певної дати, наприклад 02.02.2006.

> #02.02.2006#

Повертає записи транзакцій, виконаних після 2 лютого 2006 р.

Щоб переглянути транзакції, виконані в цей день або після нього, використайте оператор >= замість оператора >.

Містить значення в певному проміжку часу.

>#02.02.2006# and <#04.02.2006#

Повертає записи транзакцій, виконаних між 2 лютого 2006 р. та 4 лютого 2006 р.

Також можна використовувати оператор Between, щоб фільтрувати діапазон значень. Наприклад, "Between #02.02.2006# and #04.02.2006#" – це те саме, що ">#02.02.2006# and <#04.02.2006#".

Містить значення за межами діапазону.

<#02.02.2006# or >#04.02.2006#

Повертає записи транзакцій, виконаних перед 2 лютого 2006 р. або після 4 лютого 2006 р.

Містить одне з двох значень, наприклад 02.02.2006 або 03.02.2006.

#02.02.2006# or #03.02.2006#

Повертає записи транзакцій, виконаних 2 лютого 2006 р. або 3 лютого 2006 р.

Містять одне з кількох значень.

In (#01.02.2006#, #01.03.2006#, #01.04.2006#)

Повертає записи транзакцій, виконаних 1 лютого 2006 р., 1 березня 2006 р. або 1 квітня 2006 р.

Містить дату, що припадає на певний місяць (незалежно від року), наприклад грудень.

DatePart("m", [Дата_продажу]) = 12

Повертає записи транзакцій, виконаних у грудні будь-якого року.

Містить дату, що припадає на певний квартал (незалежно від року), наприклад перший.

DatePart("q", [Дата_продажу]) = 1

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

Містять сьогоднішню дату.

Date()

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

Містять учорашню дату.

Date()-1

Повертає записи транзакцій, виконаних за один день до поточного. Якщо сьогодні 02.02.2006, відображаються записи для 1 лютого 2006 р.

Містять завтрашню дату.

Date() + 1

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

Містить дати, які припадають на поточний тиждень.

DatePart("ww", [Дата_продажу]) = DatePart("ww", Date()) and Year([Дата_продажу]) = Year(Date())

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

Містить дати, які припадали на попередній тиждень

Year([Дата_продажу])* 53 + DatePart("ww", [Дата_продажу]) = Year(Date())* 53 + DatePart("ww", Date()) – 1

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

Містить дати, що припадають на наступний тиждень

Year([Дата_продажу])* 53 + DatePart("ww", [Дата_продажу]) = Year(Date())* 53 + DatePart("ww", Date()) + 1

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

Містить дату, яка припадає на минулі 7 днів.

Between Date() and Date() – 6

Повертає записи транзакцій, виконаних упродовж минулих 7 днів. Якщо сьогодні 02.02.2006, відображаються записи за період із 24 січня 2006 р. до 2 лютого 2006 р.

Містить дату, яка припадає на поточний місяць.

Year([Дата_продажу]) = Year(Now()) And Month([Дата_продажу]) = Month(Now())

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

Містить дату, яка припадає на попередній місяць.

Year([Дата_продажу])* 12 + DatePart("m", [Дата_продажу]) = Year(Date())* 12 + DatePart("m", Date()) – 1

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

Містить дату, яка припадає на наступний місяць

Year([Дата_продажу])* 12 + DatePart("m", [Дата_продажу]) = Year(Date())* 12 + DatePart("m", Date()) + 1

Повертає записи за наступний місяць. Якщо сьогодні 02.02.2006, відображаються записи за березень 2006 року.

Містить дату, яка припадає на минулі 30 або 31 день.

Between Date() And DateAdd("M", –1, Date())

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

Містить дату, яка входить до поточного кварталу

Year([Дата_продажу]) = Year(Now()) And DatePart("q", Date()) = DatePart("q", Now())

Повертає записи за поточний квартал. Якщо сьогодні 02.02.2006, відображаються записи за перший квартал 2006 р.

Містить дату, яка припадає на попередній квартал.

Year([Дата_продажу])*4 + DatePart("q", [Дата_продажу]) = Year(Date())*4 + DatePart("q", Date()) – 1

Повертає записи за попередній квартал. Якщо сьогодні 02.02.2006, відображаються записи за останній квартал 2005 р.

Містить дату, яка припадає на наступний квартал.

Year([Дата_продажу])*4 + DatePart("q", [Дата_продажу]) = Year(Date())*4 + DatePart("q", Date()) + 1

Повертає записи за наступний квартал. Якщо сьогодні 02.02.2006, відображаються записи за другий квартал 2006 р.

Містить дату, яка припадає на поточний рік.

Year([Дата_продажу]) = Year(Date())

Повертає записи за поточний рік. Якщо сьогодні 02.02.2006, відображаються записи за 2006 р.

Містить дату, яка припадає на попередній рік.

Year([Дата_продажу]) = Year(Date()) – 1

Повертає записи про транзакції, виконані упродовж попереднього року. Якщо сьогодні 02.02.2006, відображаються записи за 2005 р.

Містить дату, яка припадає на наступний рік.

Year([Дата_продажу]) = Year(Date()) + 1

Повертає записи про транзакції з датою, яка настане наступного року. Якщо сьогодні 02.02.2006, відображаються записи за 2007 р.

Містить дату між 1 січня та сьогоднішнім днем (записи з початку року)

Year([Дата_продажу]) = Year(Date()) and Month([Дата_продажу]) <= Month(Date()) and Day([Дата_продажу]) <= Day (Date())

Повертає записи про транзакції з датами між 1 січня поточного року та сьогоднішнім днем. Якщо сьогодні 02.02.2006, відображаються записи за період із 1 січня 2006 р. до 2 лютого 2006 р.

Містять минулу дату.

< Date()

Повертає записи про транзакції, виконані до сьогоднішнього дня.

Містить майбутню дату.

> Date()

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

Відфільтровані за Null-значеннями.

Is Null

Повертає записи, у яких відсутня дата транзакції.

Відфільтровані за значеннями, відмінними від Null.

Is Not Null

Повертає записи, дата транзакції яких відома.

Умови для полів "Так/Ні"

Скажімо, ваша таблиця "Клієнти" містить поле "Так/Ні" з ім’ям "Активно", у якому вказується, чи рахунок клієнта активний на даний момент. У таблиці нижче показано, як оцінюються значення, введені в рядок "Критерії" для поля "Так/Ні".

Значення поля

Результат

Yes, True, 1 або -1

Перевіряється для значення Yes. Якщо ввести значення 1 або -1, то в рядку "Критерії" воно перетвориться на True.

No, False або 0

Перевіряється для значення No. Якщо ввести значення 0, то в рядку "Критерії" воно перетвориться на False.

Немає значення (пусто)

Не перевіряється

Число, відмінне від 1, -1 або 0

Не повертає результатів, якщо це єдине значення критерію в полі

Рядок символів, відмінний від Yes, No, True або False

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

Умови для інших полів

Вкладення.    У рядку Критерії введіть Is Null, щоб включити записи, які не містять вкладень. Введіть Is Not Null, щоб включити записи, які містять вкладення.

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

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

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

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

  1. Знайдіть вихідну таблицю в області переходів.

  2. Відкрийте таблицю в режимі конструктора одним зі способів:

    • Клацніть таблицю та натисніть клавіші Ctrl+Enter.

    • Клацніть таблицю правою кнопкою миші та виберіть пункт Конструктор.

  3. Тип даних для кожного поля перелічено в стовпці Тип даних сітки конструктора таблиці.

Багатозначні поля.    Дані в багатозначному полі зберігаються як рядки в прихованій таблиці, яка створюється та заповнюється в Access, щоб представляти поле. У режимі конструктора запиту вони представляються в списку полів як поле, яке можна розгорнути. Щоб використовувати умови для багатозначного поля, слід ввести умови для окремого рядка прихованої таблиці. Ось як це зробити:

  1. Створіть і відкрийте запит із багатозначним полем у режимі конструктора.

  2. Розгорніть багатозначне поле, клацнувши значок "плюс" (+) поруч. Якщо поле вже розгорнуто, замість значка "плюс" відображається значок "мінус" (-). Безпосередньо під іменем поля з’явиться поле, яке представляє окреме значення багатозначного поля. Це поле матиме таке ж ім’я, як і багатозначне поле, з рядком .Value в кінці.

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

  4. Введіть умови для поля з одним значенням у рядку Критерії, використовуючи умови, які відповідають типу даних значень.

  5. Кожне значення в багатозначному полі буде оцінено окремо за вказаною умовою. Припустімо, наприклад, що є багатозначне поле зі списком чисел. Якщо задати умову >5 AND <3, їй відповідатиме будь-який запис, у якому є принаймні одне значення більше 5 й одне значення менше 3.

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

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

Створення простого вибіркового запиту

Потрібна додаткова довідка?

Потрібні додаткові параметри?

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

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.