Робота із запитами в Access
Обмеження на використання запитів на вибірку для поновлення даних
Набір записів, які створює Access при виконанні запитів, виглядає і веде себе майже як реальна таблиця, яка містить дані. Дійсно, в багатьох випадках можна вставляти рядки, видаляти їх і поновлювати дані в наборі записів. При цьому Access внесе необхідні зміни в відповідні базові таблиці запиту.
Але в деяких випадках Access не розуміє, які зміни необхідно виконати. Розглянемо для прикладу обчислюване поле. Якщо користувач спробує змінити значення в підсумковому полі, яке є результатом перемноження двох довільних полів, Access не знає, яке з цих полів - він хоче змінити. В той же час можна змінити значення любого з цих полій і відразу отримати результат у підсумковому полі.
Access не дозволяє виконати зміни, які діють на декілька рядків базової таблиці. По цій причині не можна змінити дані в підсумковому або перехресному запиті. Access не дозволяє змінити дані в полі, яке має установку Avgабо Sum, тому що результат у цьому випадку визначається значеннями з багатьох записів.
При роботі з набором записів, які отримані в результаті об’єднання, Access дозволяє змінювати значення любих полів таблиці, яка знаходиться на боці відношення “багатьох”, але не дозволяє поновлювати ключові поля таблиці з боку “один”. Наприклад, один склад може мати багато товарів. В наборі записів, який є результатом об’єднання таблиць Склади і Товари, можна поновити любе поле, яке належить таблиці Товари, але не можна змінити значення полів, які створюють первинний ключ таблиці Склади. Access дозволяє змінити інші поля цієї таблиці.
Якщо не бути уважним, можливість поновлювати поля з боку “один” може призвести до небажаних результатів.
Створення перехресних запитів за допомогою майстра
1. В вікні бази даних перейти на вкладку Запросыі натиснути кнопку Создать.
2. В діалоговому вікні Новый запросвибрати майстра Перекрестный запрос.
3. Натиснути кнопку ОК.
4. Користувач слідує інструкціям, які з’являються в діалогових вікнах майстра. В останньому діалоговому вікні користувачу пропонується вибір виконати запит або проглянути його структуру в режимі конструктора.
За допомогою майстра сводных таблицдані перехресних таблиць можна вивести на екран, не створюючи окремого запиту. За допомогою зведеної таблиці заголовки рядків і стовпчиків можна змінювати таким чином, щоб різними способами можна було аналізувати дані.
Настройка властивостей запиту
Мал. 6. Вікно бланка запиту
Microsoft Access дозволяє встановлювати ряд властивостей запиту, які змінюють хід його виконання. Щоб відкрити вікно властивостей запиту, потрібно клацнути любому місці верхньої частини вікна запиту в режимі конструктора ззовні списку полів і натиснути кнопку Свойствана панелі інструментів. На мал. 6 показано вікно властивостей запита на вибірку.
Звичайно, користувач вибирає тільки деякі поля, які при виконанні запиту на вибірку необхідно включити в набір записів. Але якщо розробляється запит для використання в формі, і потрібно, щоб всі поля з усіх базових таблиць запиту були доступні в цій формі, встановлюється для властивості Вывод всех полейзначення Да. В більшості випадків краще залишити для цієї властивості встановлене з мовчазної згоди значення Нет, а змінювати цю установку тільки для визначених запитів.
В залежності від складності запиту Access може знадобитися декілька секунд (хвилин), щоб знайти всі рядки і почати вивід інформації на екран. Якщо користувача цікавлять тільки “перші” або “верхні” рядки набору записів, треба скористатися властивістю Набор значений для виводу інформації на екран, як тільки Access знайде перші n або перші % рядків. Якщо ввести ціле значення, Access виведе на екран результат відразу, щойно знайде задане число рядків. При введенні десяткового значення менше 1 Access почне вивід даних після того, як знайде приблизно такий відсоток рядків. Слід врахувати, що при виконанні сортування Access повинен спочатку відібрати всі записи, і тільки відсортувавши їх, він може визначити перші n рядків. В цьому випадку властивість Набор значений не прискорить вивід інформації на екран.При виконанні запиту часто виникають ситуації, під час яких Microsoft Access знаходить рядки, що повторюються. З мовчазної згоди він включає в результуючий набір тільки унікальні записи. Це означає, що ідентифікатор кожного рядка (первинний ключ таблиці для запиту з єдиною таблицею або сполучення первинних ключів для багатотабличного запиту) унікальний. Якщо користувач не просить Access повертати унікальні значення, в набір записів запиту будуть включені тільки відмінні один від одного рядки. Якщо є потреба бачити всі дані (враховуючи рядки-дублікати), необхідно встановити обидві властивості Уникальные значенияі Уникальные записи- в значення Нет. Користувач не зможе змінювати поля в наборі записів запиту, якщо для властивості Уникальные записивстановлене значення Нет.