переходу на наступний крок натиснемо кнопку Далі;
на пропозицію майстра вибрати поля заголовків рядків відмітимо зі списку лівого віконця і перешлемо у праве віконце за допомогою стрілочки, поверненої вправо, імена полів: Platnyk та Adr;
відмітимо ім’я поля Naz_f – заголовки стовпчиків запиту;
відмітимо ім’я поля Suma на пропозицію вибрати поле для виконання обчислень у запиті. З кишеньки виберемо назву операції Sum – підсумовування. Встановимо перемикач у стан Так – обчислити підсумоване значення для кожного поля;
у запропоноване поле вводу імені запиту внесемо Oplaty_zzp – запит для звіту перехресний. Встановимо перемикач у режим перегляду. Натиснемо кнопку Готово.
Результати роботи майстра перехресного запиту показані на рисунку 3.12. Загалом, вони нас влаштовують, тому залишимо запит без змін.
Проте, якби цей запит був кінцевим документом, слід замінити Грошовий формат подання числових даних на інший, наприклад, З розділюванням розрядів. Для цього запит необхідно відкрити в режимі конструктора, він у цьому режимі показаний на рисунку 3.13. Потім – встановити курсор почергово в числовому полі Значення Suma і Підсумкове значення Suma та викликати вікно Властивості поля командою Властивості з вікна MS Access або контекстного меню. Кнопка цієї команди має вигляд таблички з рукою зверху. Вікно Властивості поля з розгорненою кишенькою форматів поля показано на рисунку 3.14. Потрібний формат поля можна вибрати з кишеньки за допомогою курсора.
Вікно Властивості використовується не тільки для запитів, але й для всіх решти складників бази даних. Воно має ту особливість, що кожного разу інакше виглядає, тобто містить різні елементи (команди, списки вибору і т.д.), потрібні якраз для даного випадку. Вигляд залежить від відміченого об’єкта в момент його виклику, тому всі параметри, які будуть у ньому встановлені, стосуються лише вибраного об’єкта.
3.4 Запитання для самоперевірки
Що таке запит та для чого він використовуються?
Які є види запитів?
Які є види зв’язків між таблицями?
Наведіть приклад, коли встановлення постійного зв’язку між об’єктами БД буде неможливим.
Перечисліть та коротко охарактеризуйте оператори.
З чого складається вираз?
Перечисліть об’єкти БД, які використовуються як джерела даних запиту?
Перечисліть команди для побудови запиту в режимі конструктора.
Які є види групових операцій?
Як задаються умови відбору записів у запиті?
4 Мова запитів
4.1 Команди SQL
Мову запитів Structured Queri Lanquage (SQL) розробив засновник баз даних реляційного типу Є. Ф. Код (E. F. Codd) у 1970 році. Запит представляє собою програму написану мовою SQL. Цю програму можна складати двома способами – використовувати візуальні засоби MS Access або безпосередньо писати текст команд. Текст програми можна включати в текст модуля, написаного мовою VBA. Засоби мови VBA, які дозволяють це робити будуть розглянені в розділі Модулі. Під час виготовлення запиту візуальним способом інтерпретатор Access складає його текст. Вкінці команди обов’язково ставиться крапка з комою. Для перегляду або редагування тексту необхідно відкрити його в режимі конструктора і виконати команду Вигляд, Режим SQL.
Сьогодні відомо багато версій мови SQL, MS Access 2000 може працювати з SQL версії ANSI-89.
Розглянемо окремі команди мови SQL. Найбільш поширеною є команда SELECT, вона має такий вигляд:
SELECT список імен полів запиту FROM ім’я джерела (таблиці або іншого запиту)
INNER JOIN ім’я зв’язаного джерела ON ім’я кодового поля = ім’я зв’язаного поля
WHERE ім’я поля оператор значення OR/AND ім’я поля оператор значення
GROUP BY список імен полів, в яких відбувається групування
HAVING умова відбору записів
ORDER BY ім’я поля, за даними якого записи запиту будуть посортовані;
Тут службові слова SELECT і FROM – обов’язкові. WHERE і HAVING дозволяють обмежити набір записів, однак, на відміну від HAVING, WHERE не дозволяє використовувати ні стандартні функції VBA, ні функції користувача. Якщо використовуються всі поля джерела, то замість їх переліку вживається символ зірочка. При сортуванні за зростанням використовується слово ASC, за спаданням – DESC.
Наведемо декілька прикладів запиту.
Приклад 1. Скласти запит, який містить усі поля таблиці Platnyky_t і лише ті записи, яких поле Priz не містить букв “ен”
SELECT * FROM Platnyky_t WHERE NOT(Priz LIKE ‘*ен’);
Приклад 2. Скласти запит, який містить усі поля таблиці Platnyky_t і лише ті записи, які містять прізвища Петренко або Дрозд
SELECT * FROM Platnyky_t WHERE Priz IN (‘Петренко’, ‘Дрозд’);
Приклад 3. Скласти запит, який містить усі поля і записи таблиць Platnyky_t і Oplaty_t, які мають однаковий код платника
SELECT * FROM Platnyky_t, Oplaty_t WHERE Kod_p = Oplaty_t.Kod_p;
варіант цього запиту з командою SELECT має такий вигляд:
SELECT * FROM Platnyky_t INNER JOIN Oplaty_t ON
Kod_p = Oplaty_t.Kod_p;
Приклад 4. Скласти запит, який містить усі поля і записи таблиці Platnyky_t, поле Priz посортувати за зростанням, а поле Ім – за спаданням
SELECT * FROM Platnyky_t ORDER BY Priz ASC Ім DESC;
Приклад 5. Скласти запит, який містить два поля таблиці Platnyky_t : Priz і кількість повторень кожного прізвища
SELECT Priz, COUNT(Priz) FROM Platnyky_t GROUP BY Priz;
Команди SELECT можуть бути вкладеними, ступінь вкладеності не обмежена. Завдяки цьому запит може набирати скільки завгодно велику довжину. Проте, не варто захоплюватися надмірною довжиною команд, бо це приводить до труднощів при налагодженні програми.
Команда INSERT служить для вставки записів у таблицю.
INSERT INTO ім’я таблиці (список імен полів) VALUES(список значень);
Приклад 7. Скласти запит, який додасть у таблицю Fondy_t запис з кодом фонду 4 і назвою фонду “Україна”
INSERT INTO Fondy_t(Kod_f, Naz_f) VALUES(4, ‘Україна’);
Якщо додаються всі поля, а це – найбільш поширений випадок, то