Відбір і сортування записів за допомогою запитів, страница 10

  1. Задайте ліве зовнішнє з'єднання, вибравши значення "2". Натисніть кнопку ОК для закриття діалогового вікна. При цьому на кінці лінії з'єднання з'явиться стрілка убік таблиці "багато хто", що вказує на ліве зовнішнє з'єднання (мал. 1.27).

Рис. 1.27. Відображення лівого зовнішнього об'єднання у вікні Конструктора запитів

  1. Установите сортування по зростанню для поля "Кодзаказа" (Orderld) у другому стовпці бланка запиту.
  2. Натисніть на панелі інструментів кнопку Запуск (Run) для висновку результуючої безлічі запиту з лівим зовнішнім -з'єднанням (мал. 1.28). Кількість записів сталася дорівнює 832, і перші два записи містять порожнє поле "Кодзаказа".

Рис. 1.28. Результат виконання запиту з лівим зовнішнім з'єднанням

  1. Збережете запит під ім'ям "Холодні клієнти". Він нам буде потрібно надалі. Запити із правим зовнішнім з'єднанням використовуються набагато рідше, тому що, якщо при складанні схеми даних для зв'язку між таблицями встановлена посилальна цілісність записів у таблиці "багато хто" (підлеглої), не пов'язаних із записами в таблиці "один" (головної), просто не може не бути.

Рекурсивне з'єднання

Як приклад рекурсивного з'єднання розглянемо запит до бази даних "Борею" (Northwind), у якому виводяться замовлення клієнтів, прийняті й виконані в один день.

Для створення такого запиту ми будемо використовувати таблицю "Замовлення" (Orders):

  1. Створіть новий запит і додайте в нього таблицю "Замовлення".
  2. Додайте в запит копію таблиці, повторно нажавши кнопку Додати (Show Table). Access привласнює копії ім'я "Замовлення_1". Закрийте діалогове вікно Додавання таблиці (Show Table).
  3. Перетягнете поле "Датаразмещения" (OrderedDate) вихідної таблиці "Замовлення" на поле "Датаисполнения" (ShippedDate) таблиці "Замовлення_1". Між таблицями виникає з'єднання (мал. 1.29).
  4. Перетягнете поля "Кодзаказа" (Orderld), "Кодклиента" (Customerld) і "Датаразмещения" (OrderedDate) таблиці "Замовлення" у перші три стовпці бланка запиту відповідно.

Рис. 1.29. Запит з рекурсивним з'єднанням

  1. При використанні рекурсивних з'єднань потрібно задати висновок тільки унікальних значень. Двічі клацніть по вільній області верхньої частини вікна запиту, а потім у діалоговому вікні Властивості запиту (Query Properties) установите значення Так (Yes) для властивості Унікальні значення (Unique Values) (мал. 1.30). Закрийте вікно Властивості запиту (Query Properties).
  2. Установите сортування по убуванню для поля "Датаисполнения" (ShippedDate), щоб останні обслужені замовлення були відображені першими.
  3. Натисніть кнопку Запуск (Run) і ви повинні одержати таблицю замовлень, у яких дата розміщення й виконання замовлення є однаковою.

Рис. 1.30. Діалогове вікно Властивості запиту

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

Запити з параметрами

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