Створення запитів

Лекція 3. Робота з фільтрами і запитами у Microsoft Access

 

1. Пошук інформації в таблицях баз даних у Access

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

Для пошуку даних будують умови: прості і складені.

Прості умови – це:

- числа, тексти, вирази, математичні співвідношення, наприклад: 7; “Петренко”; Петренко; >5; =23; <0; <>4 тощо;

- date() – усі дати до вчора включно;

- Like’Б*’ – слова, які починаються з літери “Б” тощо.

Складені умови – це умови, побудовані з простих за допомогою логічних операцій not (не); and (і); or (або). Наприклад, not 2; between 2 and 3; between date()-10 and date(0) – дати за минулі 10 днів від сьогоднішньої; between 12/4/05 and 23/6/05 – між двома датами тощо.

Умови записують відповідно до правил мови SQL (Structured Query Language). У конструкторах фільтрів і запитів умови вводять у рядок умов. Умови, які стосуються різних полів і мають (логічну операцію) “і”, записують в одному рядку конструктора умов. Умови, які стосуються одного поля і мають сполучник (логічну операцію) “або”, розташовують одну під одною.

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

- виконання команд основного меню Запит – Фільтр;

- виконання команд з контекстного меню;

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

Для зняття фільтрів використовують команду Відмінити фільтр.

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

Розрізняють декілька типів запитів. Найпростішим є звичайний запит (запит на вибірку), який відображає на екрані вибрані з БД записи. Ці запити не змінюють таблиці БД.

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

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

 

Одним із найпотужніших засобів сучасних систем управління базами даних є запити(Query), які дозволяють користувачам «ставити запитання» базам даних. Результати запиту можуть бути надруковані чи виведені на екран. За допомогою запиту можна також виконати деякі дії з даними таблиці (таблиць) та узагальнити ці дані.

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

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

Створити запити в Access можна вручну або за допомогою майстра запитів.Майстер запитів Access містить спеціальні інструменти, які використовуються для розв’язку досить складних задач (наприклад, для пошуку записів, які повторюються, або перегляду даних запита). Але для виконання простих щоденних операцій, які вимагають простих запитів, можна відкрити запит, додати поле, вставити умову, виконати запит. Щоб створити запит вручну, треба виконати:

1. У вікні БД відкрити вкладку Запросы.

2. Натиснути кнопку Создать. З’явиться діалогове вікно Новый запрос(рис. 8).

Рис. 8. Діалогове вікно Новый запрос

У цьому діалоговому вікні вибрати пункт Конструкторінатиснути ОК. Після цього відкриється вікно конструктора запиту з діалоговим вікном Добавление таблицы(рис. 9).

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

Рис. 9. Діалогове вікно Добавление таблицы

Відкривши вікно запиту, можна приступити до розробки нового запиту; її треба розпочати з додавання таблиць, з яких вибираються дані. Для цього необхідно в діалоговому вікні Добавление таблицывибрати ту таблицю, або таблиці, які мають використовуватися в запиті. Кількість таблиць, що використовуються в запиті, необмежена. Крім таблиць, в запиті можуть використовуватися інші запити. При створенні запитів із декількома таблицями треба призначити загальне поле, яке зв’язує таблиці, пересуванням його з вікна однієї таблиці у вікно іншої. Запити, що використовують декілька таблиць, називають реляційними. Відкрити діалогове вікно Добавление таблицыможна, натиснувши на кнопці Добавить таблицупанелі інструментів або вибравши команду Запрос/Добавить таблицу.Додавши таблицю (таблиці) і/або запит (запити), закрити діалогове вікно Добавление таблицы.

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

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

Рис. 10. Вікно формування запиту

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

- щоб додати декілька полів, вибрати поля, використовуючи клавіші Shiftабо Ctrl,і пересунути їх мишею в бланк запиту (Shift– суміжні поля, Ctrl– несуміжні поля);

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

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

Після того, як всі необхідні поля переміщені в запит, треба визначити умови, за якими при виконанні запиту будуть вибиратися дані. Можна задати декілька умов, ввівши їх у стовпчики або об’єднавши умови за допомогою логічного оператора OR (або)чи AND (і). Щоб ввести умову, треба натиснути в будь-якому місці рядка Условие отбораі ввести вираз (можна вводити довгі вирази). Щоб проглянути вираз, треба натиснути комбінацію клавіш Shift+F2 і проглянути його в діалоговому вікні Область ввода.

Результати запиту можна сортувати за одним або декількома полями. За умовчанням дані відображаються в порядку, встановленому для ключового поля першої вибраної таблиці. Якщо ключового поля немає, дані відображаються в порядку відбору записів. Щоб задати порядок сортування даних, треба натиснути в рядку Сортировка,відкрити список і вибрати По возрастаниюабо По убыванию.Текстові дані сортуються за зростанням від А до Я, а числові – від 0 до 9. За спаданням дані сортуються в зворотному порядку: текстові від Я до А, а числові – від 9 до 0.

Порядок сортування за декількома полями визначає пріоритет полів. Крайнє зліва поле з увімкненим сортуванням має найвищий пріоритет, а крайнє справа – найнижчий.

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

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

Після створення запиту і встановлення всіх його параметрів запит можна виконати. Для цього треба натиснути на кнопку Запуск панелі інструментів або використати команду Запрос/Запуск. Запит відбирає дані і відображає результати в динамічному наборі. Для запуску запиту на виконання можна використати команду Режим таблицыз меню Видабо кнопку Режим таблицыпанелі інструментів.

Запити можна зберігати так, як і інші об’єкти Access. Коли вікно перегляду результатів запиту активне, треба вибрати команду Файл/Сохранитьабо натиснути на кнопку Сохранитьпанелі інструментів. Якщо запит зберігається вперше, з’являється діалогове вікно, в якому треба вказати ім’я запиту. Для друкування результатів запиту треба виконати запит на відображення динамічного набору, потім виконати команду Файл/Печатьабо натиснути кнопку Печатьпанелі інструментів. У діалоговому вікні Печать,яке з’явиться, треба встановити необхідні параметри і натиснути ОК.

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

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

Access допускає використання різних способів введення текстових виразів. Можна вводити текст у лапках або без них, ставити знаки рівності перед текстом або опускати їх (коли курсор виходить за межі поля, що містить текстовий вираз, Access автоматично бере текст в лапки). Тобто можна вводити будь-який з таких виразів: Київ, »Київ», = Київ, = «Київ».

Разом з текстовими умовами можна використовувати оператор Likeі символ «*», який означає довільну послідовність символів.

Для полів, що містять числові або грошові значення, у виразах можна використовувати математичні операції. Так, вирази = 20.00і between 5 and 12є типовими числовими умовами.

Для полів, які містять дати, також використовуються математичні операції у виразах умов. Дати вводяться у будь-якому з таких форматів: июн 23 98,# 23/6/98#, 23-июн-98.Брати дати в символи # не обов’язково (якщо вони відсутні, то Access додасть їх автоматично). В умовах для дат можна використовувати функцію Date () для відбору записів, що містять поточну дату. Можна використовувати також вираз з between,наприклад, »between 24/8/91 and date ()».

Для вибору підмножини даних, що задовольняють декільком умовам, у відповідні поля бланка запиту треба внести умови у відповідному форматі. Такі запити використовують логічні операції AND (І), тому що для вибору запису мають одночасно задовольнятися перша і (and) друга умова.

У багатьох випадках за допомогою запиту з таблиці треба вибрати записи, які задовільняють хоча б одну з набору умов. Такі запити використовують логічну операцію OR (або)тому, що для вибору записи мають задовільняти ту або (or) іншу умову. Для введення декількох умов, об’єднаних операцією або, можна використовувати довільну кількість додаткових рядків під рядком «Условие отбора»бланка запиту.

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

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

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

Access використовує мову бази даних SQL (Structured Query Language– структурована мова запитів) для створення запитів. Незважаючи на те, що запит розробляється візуально у вікні конструктора запиту, при збереженні запиту Access транслює цей візуальний проект в оператор SQL,який і виконується при запуску запиту. Оператор SQL,який відповідає даному запиту, можна побачити у вікні конструктора запиту, якщо вибрати команду Вид/Режим SQL.