Запити у Access

 

Головна

 

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

 

       

Отримання відповідей на складні питання - одна з основних причин, за якою витрачаються кошти і час на створення та використання СУБД. Основний засіб для отримання цих відповідей -запити.

Запит (Query) - звертання за інформацією до бази даних. Запити в Ассеss забезпечують швидкий і ефективний доступ до даних, що зберігаються в таблиці. Запити застосовуються для вибору стовпчиків і рядків, виведених на дисплей, для сортування рядків і для виконання звітів. За допомогою запитів можна також звести разом дані зі зв'язаних таблиць.

При роботі з таблицями виникають різні проблеми. У таблицях не дозволяється використовувати поля, що обчислюються. Крім того, Ассess майже завжди автоматично сортує таблиці відповідно до первинного ключа. Не існує також можливості вибрати інший критерій сортування, наприклад, по вторинному ключі. Усі ці проблеми легко вирішуються за допомогою запитів.

При виконанні запиту Ассезз зчитує дані з таблиць і відображає результат виконання в режимі таблиці. При цьому варто враховувати, що результат виконання запиту не зберігається. Дані завжди зберігаються в таблицях. У запиті Ассеss зберігає тільки інструкції про те, як повинні бути організовані дані в результаті виконання запиту. Однак варто пам'ятати про те, що при зміні даних у записах динамічного набору запиту змінюються і записи вихідних таблиць.

        На основі запиту можна розробити форму або звіт (аналогічно створенню форми або звіту на основі таблиці). У Ассеss використовуються різні види запитів: запити на вибірку, запити з параметрами, запити на зміну, запити з обчисленням, підсумкові запити і т.д., з деякими з який ви познайомитеся нижче. 

 

І.Запит-вибірка

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

2. Натисніть   кнопку  Создать,   вибрати  Конструктор.   Відкривається  вікно  "Запрос   на выборку".

3.У вікні, що відкрилося, "Добавление таблицы" виберіть одну чи декілька потрібних для запиту таблиць для запиту і закрийте це вікно. На екрані залишається вікно конструктора запиту, що відображає списки полів обраних таблиць із зв'язками.

4.Відбуксируйте до бланка запиту необхідні поля даних.

5. Для кожного з полів, за якими повинне бути проведене сортування, виберіть спосіб  сортування.

Якщо потрібна  присутність усіх полів таблиці, то можна відбуксирувати в бланк запиту "зірочку" *.

      Можна обрати «Вывод на экран» для поля сортування.

            Створивши запит, можна:

•   Відобразити на екрані результат запиту (піктограма "Вьшолнить");

•   Зберегти для подальшого використання. Для цього при закритті запиту вводиться назва.

   Можна відмовитися від збереження внесених змін або від збереження запиту.

 

ІІ. Запити - фільтри

При необхідності відобразити на екрані дані однієї або декількох таблиць відповідно до різних критеріїв використовуються запити з критеріями пошуку. Наприклад:

•   відобразити на екрані відомості про співробітників, прізвище яких починається з букви «А»;

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

При виконанні запиту Ассеss формує вікно для введення параметра, і результат виконання запиту з'являється на екрані тільки після введення значень всіх параметрів.

 

ІІІ. Запити до зв'язаних таблиць

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

Будемо вважати, що зв'язки між таблицями встановлені. У противному випадку їх треба установити за допомогою команди "Связи". Після того як зв'язки встановлені, можна формувати запит аналогічно вищевказаним запитам із фільтрами або з параметрами й ін., тобто відбуксирувати всі необхідні поля до бланка QВЕ і далі вказати умови вибору, сортування, обчислення і т.д. Уся необхідна інформація автоматично буде додана.

Що обчислюються в запитах

Ассеss не дозволяє виконати обчислення над даними у числових полях таблиці. Для того щоб  робити обчислення і відображати ці дані в табличному вигляді або у

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

Наприклад, для нарахування премії відхилення обсягу споживання електроенергії від норми потрібно:

■ Активізувати вікно запитів. Створити запит, відбуксирувавши поля Назва підприємства, обсяг споживання з таблиці «Основні відомості» до бланка запиту.

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

У квадратні дужки беруть тільки імена полів.

У вузький стовпець непросто записати довгу формулу, але якщо натиснути комбінацію клавіш SHIFT+F2, то відкривається допоміжне діалогове вікно, яке називається Область ввода. У ньому можна ввести яку завгодно довгу формулу, а потім клацанням на кнопці ОК перенести її до бланка запиту.

Сформувати поле, що обчислюється, можна також за допомогою Построителя. Натисніть праву кнопку миші, виберіть у контекстному меню пункт Построить. У вікні, що відкрилося, введіть ім'я нового поля і сформуйте арифметичне вираження, вибираючи поля запиту із середньої частини Построителя кнопкою Вставить (якщо поля відсутні, збережіть запит, потім знову відкрийте його в режимі Конструктора і повторіть операцію).

  

ІV. Запити видалення

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


 

Рис. 11. Вікно Построителя выражений


 

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

Створіть запит вибору і перегляньте результат на екрані - чи всі запису обрані за визначеним  Вами критерієм.

Якщо в результаті запиту присутні тільки записи, підлягаючі видаленню, варто перетворити  запит вибору в запит видалення. Для цього в рядку меню виберіть команду Запрос/Удаление. Ассеss залишає в бланку запит для всіх полів рядка.

•  Виконайте запит. При цьому Ассеss не відобразить на екрані результат виконання запиту. З'являється тільки повідомлення про кількість записів, що буде вилучено у вихідній таблиці. Можна перервати процес видалення натисканням кнопки "Отмена".

 

 V. Запити заміни

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

   Створіть новий запит-вибірку.

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

   Переглянете результат на екрані - чи всі запису обрані правильно за критерієм.

   Перетворіть запит-вибірку в запит заміни. Для цього виберіть команду Запрос/Обновление

У рядок "Обновление" уведіть нові вирази для заміни записів. Тип даних у виразах повинний
збігатися з типом даних поля вихідної таблиці.

Виконайте запит.

 

VI. Підсумкові запити

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

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

Оскільки підсумкові функції для одного запису не мають змісту й існують тільки для групи записів, то попередньо записи треба згрупувати за якою-небудь ознакою.

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

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

- Для введення цього рядка в бланк треба клацнути на кнопці Групповые операции на панелі інструментів програми Ассеss.

- У тих полях, по яких виробляється угруповання, треба установити (чи залишити) функцію Группировка.

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

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

   У рядку Группировка можна вказати лише одну підсумкову функцію. А як бути, якщо треба знайти і суму, і середнє, і максимальне значення, і ще щось? Рішення

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

 


Головна    Попередня     Наступна     На початок