Комп'ютерні науки > Робота із запитами в Access
Як і в інших типах підсумкових запитів, для відбору даних, які включаються у набір записів, можна використати додаткові поля. Для них необхідно вибрати установку Условиев рядку Групповая операция і Не отображается в рядку Перекрестная таблица, а потім ввести умову відбору. Умову відбору можна також задати для любого поля, яке використовується в якості заголовків стовпчиків, а дані можна сортувати по любим полям (з мовчазної згоди 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 повертати унікальні значення, в набір записів запиту будуть включені тільки відмінні один від одного рядки. Якщо є потреба бачити всі дані (враховуючи рядки-дублікати), необхідно встановити обидві властивості Уникальные значенияі Уникальные записи- в значення Нет. Користувач не зможе змінювати поля в наборі записів запиту, якщо для властивості Уникальные записивстановлене значення Нет. Якщо база даних буде використовуватися в мережі в режимі колективного доступу, то для забезпечення безпеки даних можна дати доступ іншим користувачам до таблиць тільки за допомогою запитів. Власник таблиці завжди має до неї повний доступ. Можна заборонити всім доступ до таблиць і дозволити проглядати деякі дані тільки визначеним користувачам. Ця умова буде працювати, якщо для властивості При запуске предоставляются прававстановити значення Пользователя. Якщо для тих, хто використовує конкретний запит, потрібно дозволити “успадкувати права власника” на доступ до таблиць, треба встановити для властивості При запуске предоставляются права значення Владельца. Якщо запит призначений для роботи в режимі колективного доступу, то для забезпечення цілісності даних при редагуванні використовується властивість Блокировка записей. Access скористається блокуванням тільки в тому випадку, коли в вихідну таблицю потрібно записати рядок. Щоб запис блокувався при внесенні до нього змін одним з користувачів, встановлюється для цієї властивості значення Изменяемой записи.Більш жорстка установка Всех записейблокує всі записи, відібрані запитом, до тих пір, допоки запит відкритий одним з користувачів. Використовується ця установка тільки у тому випадку, коли при виконанні запиту робляться численні зміни в деякій таблиці, і інші користувачі не можуть мата доступу до даних цієї таблиці до тих пір, допоки не завершиться виконання запиту. 4. ЗАПИТИ НА ЗМІНУ ДАНИХ Для пошуку окремого запису в базі даних і зміни в ній значення поля досить режиму таблиці. Але що робити, якщо потрібно провести однакові зміни в більшій кількості записів. Виконання заміни в кожному окремому запису недоцільно. Перед тим, як приступити до створення запиту на поновлення записів в базі даних, потрібно створити запит на вибірку з умовою відбору, який дозволяє знайти всі записи, які підлягають поновленню. Після того, як Access вибери потрібні записи, користувачу не складно буде перетворити запит на вибірку в запит на поновлення або в інший тип запита на зміну. Запит на поновлення Допустимо, що запит на вибірку створений. Тепер можна змінити запит так, щоб він поновлював рядки таблиці. В режимі конструктора в меню Запросіснують команди для чотирьох типів запитів на зміну: Созданиетаблицы, Обновление, Добавление, Удаление. Окрім цього, для перетворення типу запита можна скористатися списком кнопки Тип запросана панелі інструментів. Треба вибрати пункт Обновление, щоб перетворити запит на вибірку в запит на поновлення. При подібному перетворенні запита Access змінює заголовок його вікна і додає рядок Обновлениев бланк QBE. Він використовується для введення нових значень (або виразів), які повинні замінити в відібраних записах існуючі дані. Якщо потрібно повністю убезпечити себе від любих випадковостей, то перед виконанням запиту на поновлення робиться резервна копія таблиці. Для цього перейти в вікно бази даних, вибрати таблицю, яка буде поновлюватися, і скористатися командою Правка/Копировать. Потім вибрати команду Правка/Вставитьі, коли Access виведе на екран відповідне вікно діалогу, надасть копії таблиці інше ім’я. Щоб виконати запит на поновлення, треба вибрати команду Запрос/Запускабо натиснути кнопку Запускна панелі інструментів. Access продивиться таблицю і визначить кількість рядків, які поновлюються, а потім виводить на екран вікно діалогу. Щоб провести поновлення даних, потрібно натиснути кнопку Дав вікні діалогу. Якщо користувач бачить, що число поновлюваних рядків в вікні діалогу не відповідає очікуваній кількості або не впевнений, що Access поновить потрібні записи або поля, натиснути кнопку Нет, щоб відмовитися від виконання запиту і поновлення даних. Після виконання запиту можна перевірити зміст таблиці, щоб впевнитися, що зміна даних проведена правильно.
Назва: Робота із запитами в Access Дата публікації: 2005-02-22 (5866 прочитано) |