Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
PAGE 25
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Запорізький національний технічний університет
Методичні вказівки
та завдання до лабораторних робіт
з курсу “Економічна інформатика”
за темою
Робота в СУБД Access
для студентів денної форми навчання
економічних спеціальностей
2009
Методичні вказівки та завдання до лабораторних робіт з курсу “Економічна інформатика” за темою “Робота в СУБД Access” для студентів денної форми навчання економічних спеціальностей Укл.
Кузіна В.М., Оникієнко Т.М., Кіпріч В.І. Запоріжжя: ЗНТУ, 2009. с. 54.
Містить індивідуальні завдання, теоретичні відомості та приклади для виконання лабораторних робіт з курсу “ Економічна інформатика” для студентів денної форми навчання економічних спеціальностей
Укладачі: Кузіна В.М., ст. викладач
Оникієнко Т.М., ст. викладач
Кіпріч В.І., асистент
Рецензент: Біла Н.І., доцент
Відповідальний за випуск Корніч Г.В., професор
Затвержено
на засіданні кафедри
системного аналізу та
обчислювальної математики
Протокол № 10 від 25.06.2009
Зміст
[1] 1 ЛАБОРАТОРНА РОБОТА № 1 [1.1] 1.1 Теоретичні відомості [1.2] 1.2 Створення таблиць бази даних [1.3] 1.3 Контрольні питання [1.4] 1.4 Індивідуальні завдання [2] 2 ЛАБОРАТОРНА РОБОТА № 2 [2.1] 2.1 Створення запитів на вибірку [2.1.1] 2.1.1 Використання умов у запитах [2.1.2] 2.1.2 Створення обчислювальних полів [2.1.3] 2.1.3 Запити з параметром [2.1.4] 2.1.4 Пошук записів, що не мають зв'язаних в іншій таблиці [2.2] 2.2 Контрольні питання [2.3] 2.3 Індивідуальні завдання [3] 3 ЛАБОРАТОРНА РОБОТА № 3 [3.1] 3.1 Використання підсумків у запитах [3.2] 3.2 Перехресні запити [3.3] 3.3 Контрольні питання [3.4] 3.4 Індивідуальні завдання [4] 4 ЛАБОРАТОРНА РОБОТА № 4 [4.1] 4.1 Запити на оновлення [4.2] 4.2 Створення нової таблиці [4.3] 4.3 Вставка даних з іншої таблиці [4.4] 4.4 Вилучення даних з таблиці [4.5] 4.5 Контрольні питання [4.6] 4.6 Індивідуальні завдання [5] 5 ЛАБОРАТОРНА РОБОТА № 5 [5.1] 5.1 Створення форм [5.2] 5.2 Контрольні питання [5.3] 5.3 Індивідуальні завдання [6] 6 ЛАБОРАТОРНА РОБОТА № 6 [6.1] 6.1 Робота з майстром звітів [6.2] 6.2 Робота з Конструктором звітів [7] ЛАБОРАТОРНА РОБОТА № 7 [7.1] 7.1 Деякі теоретичні відомості [7.2] 7.2 Контрольні питання [7.3] 7.3 Індивідуальні завдання [8] ЛАБОРАТОРНА РОБОТА № 8 [8.1] Приклад 8.1 Створити форму в режимі конструктора, в якій виводиться інформація про співробітників будь-якого відділу [8.2] Контрольні питання [8.3] 8.3 Індивідуальні завдання [9] ЛІТЕРАТУРА |
Тема роботи: Створення таблиць. Робота з даними.
Мета роботи: навчитися створювати таблиці даних в СУБД Access, встановлювати звязки між ними та вводити дані.
Вся база даних в Access зберігається у вигляді одного файлу з розширенням . mdb. У вікні бази даних знаходиться список обєктів, які можуть входити до БД: таблиці, запити, форми, звіти, сторінки, макроси та модулі.
Вікно конструктора таблиць складається з двох частин. У верхній частині в стовпчику Имя поля можна записувати унікальні імена полів українською, російською або англійською мовою. Для них рекомендується використовувати короткі слова. Якщо при відображенні таблиці потрібний якийсь інший заголовок, його можна ввести в полі Подпись в нижній частині вікна. В стовпчику Описание записуються пояснення. Надавати їх не обовязково. В стовпчику Тип данных за умовчанням встановлений Текстовый тип. Інші типи даних можна вибрати зі списку.
Ключ (первинний ключ, Primary Key) це одне поле або сукупність полів, які однозначно визначають запис. Значення в полі таблиці, для якого встановлений ключ, не можуть повторюватися, їх треба вводити обовязково, вони не можуть мати значення Null. Первинний ключ в кожній таблиці може бути лише один. Крім первинного ключа в деяких таблицях можливо існування потенційних ключів. Інколи в таблиці немає полів, які можна визнати ключовими. Тоді Access пропонує створити додаткове поле, за звичай типу лічильник. Можна погодитись або відмовитись. Щоб призначити поле ключовим, треба встановити курсор у полі і вибрати кнопку Ключове поле на панелі інструментів.
В нижній частині вікна конструктора можна задавати певні властивості (Свойства поля). Наприклад, для ключового поля властивість Индексированное поле повинна мати значення Да (Совпадения не допускаются), яке вибирається зі списку.
Властивість Маска ввода використовується найчастіше для спрощення вводу дати, номеру телефону та ін. Вона визначає формат значень та полегшує введення даних в поле.
Властивість Условие на значение не дозволяє вводити в таблиці, форми та запити значення, які не задовольняють вказаній умові. Для запису умов можна використовувати звичайні символи відношень (=, <>, <, <=, тощо), логічні оператори AND (логічне І), OR (логічне АБО), NOT (логічне НІ) та оператори порівняння.
Наприклад, умова >= 10 AND < =20 означає, що значення в полі знаходяться між числами 10 та 20.
Оператор BETWEEN перевіряє, що значення поля знаходиться між вказаними числами. Наприклад, вираз BETWEEN 10 AND 20 теж означає, що можна вводити числа від 10 до 20 включно.
Оператор IN(список) перевіряє чи належить введене значення вказаному списку. Наприклад, вираз IN( „ІОТ”; „ФЕУ ”; „ГФ”) означає, що можна вводити тільки вказані факультети.
Оператор LIKE шаблон перевіряє відповідність введених символів вказаному шаблону.
Наприклад, вираз LIKE „[А Г] ” означає, що можна ввести слово, яке починається з літер А, Б, В або Г.
LIKE „[ !А Г] ” введене слово не повинно починатися з однієї з літер А, Б, В або Г.
LIKE „К ” можна ввести слово, яке починається з літери К.
LIKE „[ 2 5] ” можна ввести одну з цифр від 2 до 5 включно.
LIKE „[А а] ” означає, що слово може починатися з А або а.
Якщо значення в полі відсутнє, то використовується строкова константа (подвійні лапки, між якими немає пробілу).
Умова Is Null означає, що значення в полі не визначене.
Завдання. Створити базу даних Підприємство для обліку робітників та їхньої зарплати.
Створимо базу даних з трьох таблиць: таблиці tViddily (Відділи), таблиці tVidom (Відомості про робітників) і таблиці tZarobitok (Заробітна плата).
Викличемо СУБД Access, в меню File (Файл) виберемо пункт Создать, а потім Новая база даннях. Відкриється вікно створення БД, в якому треба обрати папку своєї групи для збереження БД і в полі Имя файла ввести імя бази даних Підприємство.
У вікні бази даних виберемо зі списку обєктів пункт Таблицы та двічі клікнемо рядок Создание таблицы в режиме конструктора. У вікні конструктора задамо структуру таблиці tViddily (рис. 1.1). Для полів pidrozdil та shef властивістьРазмер поля встановимо рівною 15.
Рисунок 1.1 Структура таблиці tViddily (Відділи).
Рисунок 1.2 Вікно для зберігання таблиці.
Далі встановимо курсор на поле pidrozdil і натиснемо кнопку Ключевое поле на панелі інструментів. Вийдемо з конструктора та збережемо таблицю під іменем tViddily (див. рис. 1.2).
Потім задамо структуру ще двох таблиць: tVidom Відомості про робітників та tZarobitok Заробітна плата (табл. 1.3 та 1.4).
Таблиця 1.3 Структура таблиці tVidom Відомості про робітників
№ |
Опис поля |
Імя поля |
Тип даних |
Розмір поля |
1 |
Прізвище, імя та по батькові |
fio |
Текстовый |
50 |
2 |
Табельний номер |
tn |
Числовой |
Целое |
3 |
Підрозділ |
pidrozdil |
Текстовый |
15 |
4 |
Дата народження |
dtr |
Дата/время |
|
5 |
Стать |
pol |
Текстовый |
10 |
6 |
Кількість дітей |
ditej |
Числовой |
Байт |
7 |
Сімейний стан |
sem |
Текстовый |
15 |
Значення в полі pidrozdil в таблицях tViddily та tVidom повинні співпадати. Тому для визначення типу цього поля виберемо зі списку пункт Мастер подстановок. На першому етапі роботи майстра треба вибрати один з перемикачів:
Виберемо перший варіант. Далі вкажемо таблицю, з якої треба вибирати значення, тобто tViddily. Потім визначимо поле pidrozdil, з якого треба буде брати значення і встановимо ширину стовпчика.
Після цього на вкладці Подстановка автоматично в рядку Источник строк запишеться вираз:
SELECT tviddily.pidrozdil FROM tviddily;
Для поля Стать аналогічним чином введемо можливі варіанти: чоловік та жінка. Можна задати Маску ввода для поля Дата народження у вигляді 99.99.9999. Встановимо ключ на поле Табельний номер та збережемо таблицю.
Таблиця 1.4 Структура таблиці tZarobitok Заробітна плата
№ |
Опис поля |
Імя поля |
Тип даних |
Розмір поля |
1 |
Табельний номер |
tn |
Числовой |
Целое |
2 |
Дата роботи |
dat |
Дата/время |
|
3 |
Заробітна плата |
zar |
Числовой |
Для таблиці tZarobitok тип даних в полі tn визначимо за допомогою Мастера подстановок. Якщо при виборі полів вказати два поля tn та fio з таблиці tVidom і встановити прапорець Скрыть ключевой столбец, то при заповненні даними таблиці tZarobitok в списку будуть відображуватися прізвища робітників, а записуватись до таблиці будуть їх табельні номери (див. рис. 1.4).
В цій таблиці немає ключового поля.
Тепер встановимо звязки між таблицями. На панелі інструментів База данных натиснемо на кнопку Схема данных та мишкою протягнемо лінії від головної таблиці до підпорядкованої як на рисунку 1.3. Відкриється вікно Изменение связей, в якому треба встановити прапорець Обеспечение целостности данных. Між таблицями встановлюється звязок типу один до багатьох.
Рисунок 1.3 Вікно схеми даних
Спочатку заповнимо даними таблицю tViddily (Відділи), потім таблицю tVidom (Відомості про робітників). Дані для них знаходяться в таблицях 1.5 та 1.6.
Таблиця 1.5 Вміст таблиці tViddily
Підрозділ |
Телефон |
Начальник |
ОКС |
11-45-32 |
Грач |
АХЧ |
24-78-15 |
Ликов |
Бухгалтерія |
11-23-17 |
Раєв |
Дирекція |
15-11-44 |
Степаненко |
Таблиця 1.6 Вміст таблиці tVidom
Прізвище |
Таб. № |
Підрозділ |
Дата народж. |
Стать |
Кількість дітей |
Сімейний стан |
Петренко |
22 |
ОКС |
01.01.70 |
жінка |
2 |
заміжня |
Грудов |
24 |
АХЧ |
05.02.64 |
чоловік |
1 |
одружений |
Логвин |
45 |
ОКС |
10.10.71 |
жінка |
2 |
заміжня |
Сергєєв |
7 |
ОКС |
11.01.80 |
чоловік |
0 |
неодружений |
Дятлов |
42 |
АХЧ |
11.11.77 |
чоловік |
0 |
неодружений |
Алексін |
47 |
Бухгалтерія |
11.01.70 |
чоловік |
2 |
одружений |
Декілька записів таблиці tZarobitok (Заробітна плата) разом з прізвищами робітників зображені на рис. 1.4. Треба памятати, що в таблиці зберігається тільки числове поле Табельний номер, а прізвище відображується в списку для зручності роботи користувача і до складу таблиці не входить (див. задачу 2.1).
Рисунок 1.4 Частина вмісту таблиці tZarobitok
Завдання. Відсортувати таблицю tZarobitok за табельним номером та датою роботи.
Для сортування даних в полі за зростанням або за спаданням використовуються відповідні кнопки на панелі інструментів. Для сортування даних по двох полях, треба в режимі перегляду таблиці переставити поля так, щоб вони були розташовані поруч в потрібному порядку, виділити їх мишкою та натиснути кнопку Сортировка.
Якщо зробити все так, як написано вище, то сортування буде виконано не за табельним номером, а за прізвищем. Існує й інший спосіб сортування по декількох полях. Використаємо його.
Відкриємо таблицю tZarobitok в режимі перегляду. В меню Записи виберемо пункт Фильтр а потім Расширенный фильтр. Відкриється вікно (див. рис. 1.5). В цьому вікні треба вказати поля для сортування tn та dat і в рядку Сортировка вибрати зі списку варіант по возрастанию.
Рисунок 1.5 Сортування по двох полях
Щоб переглянути результати сортування, треба не виходячи з цього вікна, в меню Фильтр обрати пункт Применить фильтр. таблиці tZarobitok.
Для фільтрування даних використовуються кнопки на панелі інструментів або відповідні пункти меню Записи Фильтр.
Створити таблиці бази даних для свого варіанту в Access:
Варіант 1
Фірма постачальник добрив працює з певними замовниками. Фірма надає такі пільги: за замовлення у розмірі від 50 тон до 100 тон включно сплачується 90% вартості, від 100 до 200 тон 85%, за 200 тон та більше 83%. Для реєстрації замовлень, збереження інформації про замовників, про асортимент добрив та обробки цієї інформації необхідно розробити базу даних “Постачання добрив”, яка складається з трьох таблиць.
“Добрива”.
Поля: назва добрива; код добрива; виробник; норма використання на один гектар; вартість однієї тони; дата виготовлення; термін зберігання в місяцях.
“Господарства”.
Поля: код замовника; назва господарства замовника; область; телефон; прізвище голови господарства.
“Замовлення”.
Поля: код замовлення; код замовника; дата замовлення; код добрива; категорія пільг; площа для обробки; дата постачання. Поле категорія пільг на етапі створення таблиці вільне і заповнюється значеннями за допомогою запиту.
Варіант 2
Фірма надає транспортні послуги. Вона використовує різні види транспорту. При реєстрації замовлення фіксуються дані про замовників та вимоги до перевезення. На перевезення існують такі пільги:
для перевезень на відстань від 100 до 499 км знижка на 5%;
для перевезень на відстань від 500 до 999 км 10%;
для перевезень на відстань більше 1000 км 15%.
Для зберігання та обробки цієї інформації розробити базу даних ”Перевезення”, що містить три таблиці.
”Транспорт”.
Поля: код транспортного засобу; його назва; вартість т/км; максимальний обєм вантажу; максимальна маса вантажу.
”Замовники”.
Поля: код замовника, назва або прізвище замовника, адреса, телефон, розрахунковий рахунок.
”Замовлення на перевезення”.
Поля: номер замовлення; дата перевезення; відстань; маса вантажу; обєм вантажу; код транспортного засобу; код замовника.
Варіант 3
Туристична фірма розміщує гостей міста у готелях. Фірма надає пільги для гостей з дітьми. При поселені їх у двох або трьохмісних номерах сплачується 80% від вартості проживання. Для отримання та обробки інформації про вільні місця у готелях міста та їх мешканцях розробити базу даних “Готелі міста” з трьох таблиць.
“Готелі”.
Поля: назва готелю; код готелю; рівень сервісу (вибір із списку від 1 до 5 зірок); адреса; район міста; кількість номерів люкс; кількість одномісних номерів; кількість двомісних номерів; кількість трьохмісних номерів; вартість проживання у номері люкс; вартість проживання в одномісних номерах; вартість проживання у двомісних номерах; вартість проживання у трьохмісних номерах.
“Гості міста”.
Поля: код гостя; прізвище, імя та по батькові гостя; країна постійного проживання; з дітьми чи ні.
“Замовлення”.
Поля: код замовлення; код гостя; код готелю; тип номеру; дата поселення; кількість діб.
Варіант 4
Для обслуговування потреб будівельного майданчика розробити базу даних “Будівництво”, що складається з трьох таблиць. Таблиця “Матеріали” містить дані про всі ті будівельні матеріали, які можуть бути поставлені на майданчик. Необхідно передбачити, що матеріали можуть мати однакові назви, але різні коди, тому що відрізняються по інших атрибутах, а різні виробники можуть встановлювати різні ціни.
“Матеріали”.
Поля: код матеріалу; назва матеріалу; марка; виробник; код постачальника; одиниця виміру; вартість одиниці; мінімальна партія.
“Постачальники”.
Поля: код постачальника; назва постачальника; адреса; телефон; прізвище начальника.
“Замовлення”.
Поля: код замовлення; дата замовлення; код матеріалу; замовлена кількість; дата постачання.
Варіант 5
Для ведення підрахунків оплат за використану електроенергію споживачами розробити базу даних “Сплати за електроенергію ”, що містить три таблиці. Таблиця “ Пільги” відображає відсотки пільг, які надаються при сплаті споживачам деяких категорій (ветерани ВВВ, інваліди, чорнобильці та т. і.).
Таблиця “Платежі” це журнал оплат споживачів протягом року. Будемо вважати, що на початку кожного року підсумовуються внесені платежі за рік, робиться перерахунок, і сума заборгованості вноситься до таблиці “Споживачі”.
“Пільги”.
Поля: код пільг; назва пільгової категорії; відсоток сплати.
“Споживачі”.
Поля: код споживача; прізвище, імя та по батькові; розрахунковий рахунок; код пільг; грошова заборгованість за попередній рік.
“Платежі”.
Поля: код споживача; дата платежу; попередній показник лічильника; останній показник лічильника; внесена сума.
Вартість 1 Квт/год визначити самостійно. Поле внесена сума на етапі створення таблиці вільне і заповнюється за допомогою запиту.
Варіант 6
Міський молокозавод виконує замовлення магазинів на постачання своєї продукції. Для реєстрації замовлень, збереження інформації про замовників, про асортимент продукції, що виробляється, та організації поставок необхідно розробити базу даних “Молокозавод”, яка складається з трьох таблиць.
“Продукція”.
Поля: код продукції; назва продукції; жирність; виробник; вартість одиниці продукції; мінімальна партія; термін зберігання в днях.
“Магазини”.
Поля: код магазина замовника; назва магазину; адреса; телефон; прізвище директора магазину.
“Замовлення магазинів”.
Поля: код замовлення; дата замовлення; код магазина замовника; код продукції; обсяг замовленої партії.
Варіант 7
Автомобільний завод випускає різні моделі автомобілів. Для забезпечення потреб складального цеху автозаводу розробити базу даних “Автозавод”, яка містить три таблиці.
Таблиця “Вузли” містить дані про вузли автомобілю, що поставляються на завод. Необхідно передбачити, що вузли можуть мати однакові назви, але відрізняться по інших атрибутах.
“Постачальники”.
Поля: код постачальника; назва постачальника; адреса; телефон; прізвище начальника.
“Вузли”.
Поля: назва вузла; код вузла; виробник; вартість одиниці продукції; мінімальна партія; код постачальника.
“Замовлення”.
Поля: код замовлення; дата замовлення; код вузла; замовлена кількість; дата постачання, на яку потрібно отримати замовлення.
Варіант 8
Для автоматизації роботи у касах аеропорту розробити базу даних “Продаж авіаквитків”, що містить три таблиці. При сплаті за квитки надаються такі пільги: ветеранам війн 20% від вартості квитка; дітям 50%; працівникам авіа сервісу безкоштовно (100%). Таблиця “Продаж” це журнал продажу квитків у касі.
“Рейси”.
Поля: номер рейсу; бортовий номер; аеропорт вильоту; аеропорт призначення; пункти посадок поміж ними. Будемо вважати, що один номер рейсу обслуговує один бортовий номер літака.
“Авіалайнери”.
Поля: бортовий номер; тип літака; кількість місць в бізнескласі; вартість цих квитків; кількість місць першого класу; вартість цих квитків; кількість місць другого класу; вартість цих квитків.
“Продаж”.
Поля: номер рейсу; дата вильоту; тип салону; кількість квитків; розмір пільг; дата продажу. Тип салону та розмір пільг вибирати зі списку.
Варіант 9
Розробити базу даних “Комерційна хірургічна лікарня”, що складається з трьох таблиць. Розрахунки робити за такими правилами. Усі пацієнти поділяються на категорії:
“ Хірурги”.
Поля: код лікаря; прізвище, імя та по батькові; дата народження; категорія; стать; домашній телефон .
“ Тарифи”.
Поля: код операції; назва операції; вартість операції; вартість лікування за добу післяопераційної реабілітації.
“Пацієнти”
Поля: прізвище, імя та по батькові; дата народження; стать; категорія пацієнта; дата операції; код операції; термін лікування; код хірурга, що робив операцію.
Варіант 10
Видавництво книг виконує замовлення магазинів на поставку книг для продажу. Від кількості замовлених книг залежить розмір пільг, що надає видавництво: 1000 примірників та більше 90% вартості, 2000 примірників та більше 87%, більше 3000 85%. Для реєстрації замовлень, збереження інформації про замовників, про книжкові видання та організації поставок необхідно розробити базу даних “Видавництво”, яка складається з трьох таблиць.
“Книжкові видання”.
Поля: код книги; автор; назва книги; тираж; кількість сторінок; рік видання;отпускна ціна.
“Магазини”.
Поля: код магазиназамовника; назва магазину; адреса; район міста; телефон; прізвище директора магазину.
“Замовлення магазинів”.
Поля: номер замовлення; дата замовлення; код замовника; код книги; замовлена кількість примірників; відправлена кількість; дата поставки.
Варіант 11
Розробити довідкову систему “Облік продукції” по асортименту продукції, що виробляється на промисловому підприємстві різними цехами та перевозиться до складу. Необхідно передбачити, що продукція може бути різного ґатунку. При передачі партії продукції на склад вона реєструється. Для цього створіть базу даних, що містить три таблиці. В таблицю “Продукція” заносяться дані про продукцію, що виробляється підприємством. Таблиця ”Склад” містить дані про партію продукції, що розміщується на складі.
”Цехи”.
Поля: номер цеха, прізвище начальника цеха, телефон.
“Продукція”.
Поля: код продукції; назва продукції, вартість одиниці продукції вищого ґатунку, вартість одиниці продукції першого ґатунку, вартість одиниці продукції другого ґатунку, мінімальна партія.
”Склад”.
Поля: код партії; дата реєстрації; код продукції; номер цеха; показник якості (ґатунок); обєм партії продукції.
Варіант 12
Розробити базу даних “Сплати за телефон” для ведення розрахунків за телефон абонентами телефонної мережі. База даних складається з трьох таблиць. Таблиця “Абоненти” містить інформацію про абонентів. Будемо вважати, що першого числа кожного місяця до значень полів “кількість несплачених хвилин” автоматично заноситься кількість хвилин за розмови минулого місяця.
Таблиця “Платежі” містить відомості про платежі за поточний місяць і щомісячно оновлюється. Плата за розмови повинна вноситися до 15 числа. Пеня, в розмірі 1% від вартості розмов, стягується, якщо сплачено не вчасно. Вартість однієї хвилини для кожного виду розмов (міських, міжміських та міжнародних) встановити самостійно.
Таблиця “Пільги” відображує відсоток пільг на всі розмов, які надаються абонентам певних категорій (інваліди, чорнобильці та ін.).
“Абоненти”.
Поля: прізвище, імя та по батькові абонента; номер телефону; код пільг; кількість несплачених хвилин за міські розмови; кількість несплачених хвилин за міжміські розмови; кількість несплачених хвилин за міжнародні розмови.
“Пільги”.
Поля: код пільг; назва пільгової категорії; відсоток сплати.
“Платежі”.
Поля: номер телефону; дата платежу; сплачена сума (це поле на етапі створення таблиці вільне і заповнюється за допомогою запиту).
Тема роботи: Запити на вибірку.
Мета роботи: навчитися створювати запити на вибірку в Access.
Запити на вибірку вибирають дані з однієї таблиці або зі звязаних таблиць. Відібрані дані задовольняють вказаним умовам. Такі запити не використовують для змінення даних таблиць.
Задача 2.1. Створити запит на вибірку даних, до якого увійдуть прізвище робітника, його табельний номер, дата та сума заробітку.
Для того, щоб отримати запит у такому вигляді як на рис. 1.4, у вікні бази даних виберемо пункт Создать Конструктор або двічі клікнемо на пункті Создание запроса в режиме конструктора.
Відкриються вікно конструктора запитів та вікно Добавление таблицы. Відзначимо таблиці tVidom та tZarobitok і натиснемо кнопку Добавить. У верхній половині вікна конструктора запитів зявляться ці таблиці. Між ними буде автоматично встановлений звязок.
Перетягнемо в нижню частину конструктора поля tn та fio з таблиці tVidom і поля dat та zar з таблиці tZarobitok. Для поля dat таблиці tZarobitok в рядку Сортировка виберемо варіант по возрастанию. Збережемо запит під іменем vsi roboty. Результат цього запиту на рис. 1.4, а конструктор запиту на рис. 2.1.
В конструкторі запитів в рядку Условие отбора можна записувати умови на значення, за тими ж правилами, що й в таблицях.
Рисунок 2.1 Вікно конструктора запиту 2.1
Задача 2.2. Створити запит про заробітки, які знаходяться в межах від 30 грн. до 50 грн.
Використаємо існуючий запит vsi roboty. Відкриємо його в режимі конструктора та збережемо під іменем between 30 i 50. Для поля zar в рядку Условие отбора запишемо умови >=30 And <=50 (див. рис.2.2). Для цього ж поля відкриємо вікно Свойства і встановимо у властивості поля Формат поля значення денежный.
Той же самий результат отримаємо, якщо включимо поле zar до запиту двічі. В першому стовпчику zar запишемо умову >=30, а в тому ж рядку другого стовпчика zar умову <=50. Тоді в другому стовпчику zar треба зняти прапорець в рядку Вывод на экран.
Рисунок 2.2 Фрагмент вікна конструктора запиту between 30 i 50
Задача 2.3. Створити запит про заробітки робітника Грудова.
Створимо для цього запит по таблиці tZarobitok. У вікні конструктора для поля tn запишемо значення 24, тому що в таблиці зберігається табельний номер, а відображується прізвище. Конструктор запиту на рис. 2.3, а результат на рис. 2.4.
Рисунок 2.3 Фрагмент вікна конструктора запиту 2.3
Рисунок 2.4 Результат запиту 2.3
Задача 2.4. Створити запит про заробітки, які були нараховані в серпні, тобто в 8-му місяці.
Знов відкриємо в режимі конструктора запит vsi roboty. Запишемо в полі dat умову Month ( [ tzarobitok] ! [dat] ) = 8 (див. рис. 2.5).
Рисунок 2.5 Конструктор запиту 2.4
Умову зручніше вводити за допомогою будівельника виразів. Поставимо курсор на місце, де треба ввести вираз і натиснемо кнопку Построить на панелі інструментів. Відкриється вікно (див. рис. 2.6), в якому можна вибирати існуючі функції та поля таблиць і запитів.
Рисунок 2.6 Фрагмент вікна будівельника виразів
Ту ж саму умову можна записати трохи інакше (див. рис. 2.7). Створимо обчислювальне поле. Для цього у вільному полі запишемо вираз Month ( [ tzarobitok] ! [dat] ), в рядку Условие отбора : 8 та знімемо прапорець Вывод на экран. Результат роботи на рис. 2.8.
Рисунок 2.7 Фрагмент конструктора запиту 2.4
Рисунок 2.8 Результат запиту 2.4
Обчислювальне поле може мати заголовок. Він записується перед виразом та відокремлюється від нього двокрапкою. Наприклад,
місяць : Month ([ tzarobitok] ! [dat])
Задача 2.5. Створити запит про заробітки вказаного робітника. Прізвище робітника вводити як параметр.
Знов використаємо запит vsi roboty. Залишимо потрібні 3 поля (див. рис. 2.9) та в рядку Условие отбора для поля tvidom . fio запишемо в квадратних дужках пояснювальний текст [Введіть прізвище].
Рисунок 2.9 Фрагмент конструктора запиту 2.5
Після запуску запиту зявиться вікно з поясненням і текстовим полем, до якого необхідно записати потрібне прізвище (див. рис. 2.10).
Рисунок 2.10 Вікно для введення параметру
За замовчанням Access встановлює для параметрів запиту текстовий тип даних. Щоб його змінити, треба в режимі конструктора запиту вибрати в меню пункт Запрос, а потім Параметры.
Задача 2.6. Знайти відомості про робітників, які ще не працювали, тобто їхні заробітки відсутні в таблиці tzarobitok.
У вікні конструктора БД натиснемо на кнопку Создать, а потім виберемо пункт Записи без подчиненных. Починає роботу майстер.
На першому етапі необхідно вказати імя запиту або таблиці, з якої треба вибрати записи, що не мають звязаних записів в іншій таблиці. Виберемо зі списку таблицю tvidom.
Імя іншої таблиці, з якою перша має співпадаючі поля, потрібно вказати на другому етапі. Виберемо зі списку таблицю tzarobitok. На третьому етапі вкажемо в таблицях імена полів, що мають співпадаючі значення, тобто tn (табельний номер). Далі вкажемо поля, що увійдуть до запиту, та збережемо запит під іменем Null.
Якщо відкриємо запит в режимі конструктора, то побачимо автоматично створене Условие отбора = Is Null для поля tzarobitok . tn (див. рис. 2.11). Крім того, змінений тип обєднання таблиць. Щоб перевірити це, виділімо лінію звязку між таблицями та в контекстному меню виберемо пункт Параметры объединения. Відкриється вікно з перемикачами (див. рис. 2.12), в якому вибраний другий варіант.
Рисунок 2.11 Фрагмент конструктора запиту 2.6
Рисунок 2.12 Настроювання типу обєднання таблиць
Створити запити для свого варіанту:
Варіант 1
Варіант 2
Варіант 3
Варіант 4
Варіант 5
Варіант 6
Варіант 7
Варіант 8
Варіант 9
Варіант 10
Варіант 11
Варіант 12
Тема роботи: Підсумки в запитах.
Мета роботи: навчитися створювати перехресні запити та запити, що знаходять підсумки даних в СУБД Access.
Задача 3.1. Створити запит про заробітки всіх робітників.
Це підсумковий запит. Спочатку створимо запит на вибірку з полями tVidom . tn, tVidom. fio та tZarobitok . zar. На панелі іструментів натиснемо кнопку (Групповые операции). В конструкторі зявиться рядок з такою ж назвою (див. рис. 3.1). Для полів tn і fio залишимо значення Группировка, а для поля zar виберемо зі списку варіант Sum (сума). Перетягнемо ще раз поле zar в нижню частину конструктора запитів і виберемо для нього зі списку варіант Avg (середнє значення).
Рисунок 3.1 Конструктор запиту 3.1
Встановимо властивості поля zar (див. рис. 3.2), щоб задати підписи та формат відображення даних. Змінимо тип обєднання таблиць. Виділімо лінію звязку між таблицями та у вікні Параметры объединения відзначимо другий перемикач як на рис. 2.12. Запишемо запит під іменем pidsumki. Результат роботи запиту на рис.3.3.
Рисунок 3.2 Вікно властивостей поля
В підсумкових запитах можна використовувати одну з функцій: Sum (сума), Avg (середнє), Count (кількість записів), Min (мінімум), Max (максимум), First (перше значення), Last (останнє значення). Якщо підсумки знаходяться тільки для тих записів, що задовольняють певній умові, то для поля, в якому записане Условие отбора записів, в рядку Групповая операция треба вибрати значення Условие.
Рисунок 3.3 Результат запиту 3.1
Задача 3.2. Створити запит про заробітки тих робітників, які заробили більше 200 грн.
Використаємо попередній запит pidsumki. В конструкторі для поля zar запишемо Условие отбора >200. В результаті роботи будуть виведені відомості тільки про двох робітників: Грудова та Петренка.
Задача 3.3. Для кожного робітника підрахувати кількість днів, коли їхні заробітки становили більше 40 грн.
Для розвязку цієї задачі спочатку створимо допоміжний запит на вибірку з полями tVidom. fio та tZarobitok . zar. Для поля tZarobitok . zar запишемо Условие отбора > 40, тобто будуть виводитись лише записи, що задовольняють умові. Збережемо запит під іменем більше 40.
Далі створимо підсумковий запит. Виберемо всі поля допоміжного запиту більше 40, натиснемо кнопку Групповые операции і встановимо для поля fio варіант Группировка, а для поля zar виберемо функцію Count (див. рис. 3.4). Для поля zar у вікні Свойства запишемо Подпись: Кількість днів.
Результат роботи запиту на рис.3.5.
Рисунок 3.4 Конструктор запиту 3.3
Рисунок 3.5 Результат запиту 3.3
Другий спосіб. В режимі конструктора (див. рис. 3.6) виберемо таблиці tvidom і tzarobitok, а в них поля fio і zar. В рядку Групповая операция виберемо для поля fio варіант Группировка, а поле zar запишемо до бланку запиту двічі. В рядку Групповая операция виберемо для нього варіант Count (кількість записів), а в стовпчику, де вибраний варіант Условие, запишемо Условие отбора > 40 і знімемо прапорець Вывод на экран. Результат роботи запиту той же самий (див. рис.3.5).
Рисунок 3.6 Конструктор запиту 3.3 (другий спосіб)
Перехресний запит це підсумковий запит спеціального вигляду, схожий на електронну таблицю. Майстер створює його для однієї таблиці або запиту. Якщо необхідно включити до запиту дані з різних таблиць, то треба використати конструктор, або спочатку створити звичайний запит на вибірку, до якого увійдуть усі потрібні поля. А потім вже для цього допоміжного запиту створити перехресний запит.
Задача 3.4. Створити перехресний запит, до якого увійдуть загальні суми заробітку по кварталах для кожного підрозділу.
Спочатку створимо допоміжний запит на вибірку під назвою dla kvartal з полями tvidom . pidrozdil , tzarobitok . dat та tzarobitok . zar.
Потім у вікні конструктора БД натиснемо на кнопку Создать, і виберемо пункт Перекрестный запрос. Починає роботу майстер.
На першому етапі необхідно вказати імя запиту або таблиці, з якої треба вибрати записи. Встановимо перемикач Запросы і виберемо запит dla kvartal.
На другому етапі виберемо поле pidrozdil для заголовків рядків.
На третьому етапі виберемо поле dat, щоб використати його значення для заголовків стовпчиків. Тому що це поле містить дані типу дата, зявляється додатковий етап, на якому можна вказати інтервал часу для підсумків. Відзначимо Квартал. На наступному етапі для поля zar виберемо зі списку підсумкову функцію Сумма та збережемо запит під іменем kvartal .
Відкриємо запит в режимі конструктора (див. рис. 3.7), щоб вдосконалити його вигляд. Для Заголовков столбцов запишемо вираз:
Выражение1: "Квартал " & Format( [dat] ;"q")
Змінимо обчислювальне поле для обчислення підсумків в рядку на Загальна сума: zar. Результат роботи запиту на рис.3.8.
Рисунок 3.7 Конструктор запиту 3.4
Рисунок 3.8 Результат запиту 3.4
Створити підсумкові та перехресні запити для свого варіанту:
Варіант 1
Варіант 2
Варіант 3
Варіант 4
Варіант 5
Варіант 6
Варіант 7
Варіант 8
Варіант 9
Варіант 10
Варіант 11
Варіант 12
Тема роботи: Запити на змінення.
Мета роботи: навчитися створювати запити, що змінюють дані таблиць в СУБД Access.
Перш, ніж запускати на виконання запит на оновлення, треба:
Задача 4.1. Змінити заробітки робітників таким чином: тим робітникам, яким нарахована сума менше 40 грн., збільшити її до 40 грн.
З таблиці tzarobitok виберемо поле zar і створимо запит на вибірку. Потім в режимі конструктора запиту в меню Запрос виберемо пункт Обновление. У вікні конструктора зявляється новий рядок Обновление. Запишемо в цьому рядку правило оновлення поля zar:
IIf ( [tzarobitok] ! [zar] > 40 ; [tzarobitok] ! [zar] ; 40)
Після запуску запиту на виконання зявиться вікно повідомлення. Якщо натиснути кнопку Да, то вміст таблиці буде змінено. Потім цю дію відмінити не можна.
Запити на створення нової таблиці зручно використовувати для зберігання якихось підсумків або архівних даних.
Задача 4.2. Записати до нової таблиці відомості про загальні заробітки всіх робітників.
Використаємо існуючий запит pidsumki (див. задачу 3.1). Щоб записати підсумки до нової таблиці, в режимі конструктора запиту pidsumki в меню Запрос виберемо пункт Создание таблицы. Відкриється вікно (див. рис. 4.2), в якому треба ввести імя нової таблиці.
Рисунок 4.2 Фрагмент вікна Создание таблицы
Після запуску запиту буде створена нова таблиця з імям itogo. Її вміст співпадатиме з вмістом запиту. Якщо запустити запит вдруге, то виведеться вікно повідомлення: Существующая таблица itogo будет удалена перед выполнением запроса. Продолжить выполнение? Якщо відповісти „Да”, буде вилучений попередній варіант таблиці itogo і створений новий.
Цей вид запитів дозволяє, наприклад, додавати дані до інших таблиць, зокрема до архівних.
Задача 4.3. Створити архівну таблицю про заробітки робітників за попередні роки. Забезпечити можливість її доповнення.
Створимо спочатку запит на вибірку з полями таблиці tvidom: fio, pidrozdil, tn та полями таблиці tzarobitok: dat і zar. Відкриємо його в режимі конструктора та добавимо Условие отбора для поля dat:
Year ( [tzarobitok] ! [dat] ) < 2005
В меню Запрос виберемо пункт Создание таблицы. Створимо нову таблицю arhiv, куди запишемо застарілі відомості про заробітки. В конструкторі таблиць встановимо підписи полів та інші властивості у разі потреби.
Тепер змінимо тип запиту. В меню Запрос виберемо пункт Добавление. Відкриється вікно, в якому треба буде вибрати зі списку одну з існуючих таблиць. Вкажемо таблицю arhiv. Для того, щоб цей запит доповнював таблицю arhiv, не повторюючи дані, треба змінити Условие отбора для поля dat. Наприклад, можна створити обчислювальне поле Year ( [tzarobitok] ! [dat] ) і вибирати дані за допомогою параметру [Введіть рік] (див. рис. 4.3). Щоб вилучити дані за минулий рік, можна використати умову:
Year ( [tzarobitok] ! [dat] ) = Year (Date( ) ) 1
Рисунок 4.3 Фрагмент вікна конструктора задачі 4.3
Задача 4.4. Вилучити з таблиці tzarobitok відомості про заробітки робітників за попередні роки, відібрані до архіву.
Створимо спочатку запит на вибірку з усіма полями таблиці tzarobitok. Для запису Условия отбора краще використати параметр та переконатися, що відбираються тільки потрібні записи. Потім в меню Запрос виберемо пункт Удаление.
Цей тип запитів дозволяє вилучати тільки весь запис повністю, а не окремі поля. Перед виконанням запиту рекомендується зробити резервну копію таблиці. Відновити вилучені записи неможливо.
Створити для свого варіанту:
Варіант 1
Варіант 2
Варіант 3
Варіант 4
Варіант 5
Варіант 6
Варіант 7
Варіант 8
Варіант 9
Варіант 10
Варіант 11
Варіант 12
Тема роботи: Створення форм.
Мета роботи: навчитись створювати прості форми та форми з підпорядкованою формою, використовуючи таблиці або запити.
Форми можна створювати трьома різними способами:
Автоформа створюється для всіх полів таблиці або запиту. Якщо вона створюється для таблиці, що має звязані таблиці, то на формі теж будуть виведені всі їхні поля та записи.
Завдання.: Для кожного підрозділу навести в підпорядкованій формі список працівників з їх заробітком та обчислити сумарний заробіток
Такі форми створюються тільки для звязаних таблиць( запитів)ю
Форму буде створено Майстром по таблиці tViddily та запиту tzarobitok (див. рис. 5.2) Виберемо пункт „Создание форми с помошью мастера” та виконаємо його інструкції:
а) вибір полів з таблиці tViddily та запиту, у якому нарахована зарплата;
б) вид представлення даних;
в) вид підпорядкованої форми лен точний.
Для підведення сумарного заробітку необхідно відчинити підпорядковану форму у режимі конструктора та в області Примечание форми додати текстове поле, в яке вводимо формулу
=sum([ zar ]).( див. рис. 5.1)
Рисунок 5.1 підпорядкованою форма
Рисунок 5.2 форма з підпорядкованою для таблиці tViddily
Варіант 1
Для кожного господарства вивести в підпорядкованій формі усі його замовлення з підрахованою сумою до сплати. Обчислити загальну вартість усіх замовлень.
Варіант 2
Для кожного замовника вивести в підпорядкованій формі усі його замовлення з підрахованою сумою до сплати. Обчислити загальну вартість усіх замовлень.
Варіант 3
Для кожного готелю вивести в підпорядкованій формі список усіх гостей з підрахованою вартістю проживання. Підрахувати загальну суму, яку отримав кожен готель.
Варіант 4
Для кожного постачальника вивести в підпорядкованій формі список усіх замовлень з підрахованою сумою до сплати. Обчислити загальну вартість усіх замовлень.
Варіант 5
Для кожного споживача вивести в підпорядкованій формі список усіх його платежів з підрахованою сумою до сплати. Обчислити загальну вартість до сплати.
Варіант 6
Для кожного магазину вивести в підпорядкованій формі список усіх його замовлень з підрахованою сумою до сплати. Обчислити загальну вартість, на яку зроблені замовлення.
Варіант 7
Для кожного постачальника вивести в підпорядкованій формі список усіх замовлень з підрахованою сумою до сплати. Обчислити загальну вартість усіх замовлень.
Варіант 8
Для кожного рейсу в підпорядкованій формі вивести список продажу квитків з підрахованою сумою до сплати. Обчислити загальну вартість проданих квитків.
Варіант 9
Для кожного хірурга в підпорядкованій формі вивести список усіх пацієнтів з підрахованою сумою до сплати за лікування. Обчислити загальну суму .
Варіант 10
Для кожного магазину в підпорядкованій формі вивести список усіх його замовлень з підрахованою сумою до сплати. Обчислити загальну вартість усіх замовлень.
Варіант 11
Для кожного складу в підпорядкованій формі вивести список усіх партій продукції з підрахованою вартістю. Обчислити загальну вартість продукції, яка зберігається на складі.
Варіант 12
Для кожного абонента в підпорядкованій формі вивести список усіх його платежів з підрахованою сумою до сплати. Обчислити загальну вартість усіх платежів.
Тема роботи: Створення звітів.
Мета роботи: навчитися створювати звіти в Access за допомогою майстра та конструктора.
Звіти дозволяють виводити зміст таблиць та запитів у зручному вигляді, робити підсумки для груп даних, підраховувати відсотки для проміжних підсумків відносно загального.
Майстер звітів дозволяє обирати поля з декількох таблиць або запитів. Але дуже часто буває зручніше спочатку створити запит з потрібними обчислювальними полями, а потім створювати звіт.
Розглянемо роботу з майстром звітів на прикладі.
Завдання. Створити звіт роботи, в якому для кожного кварталу підрахувати загальну та середню заробітну плату для кожного підрозділу і робітника. Обчислити відсотки від загальної заробленої суми.
На вкладці Отчеты викличемо майстра для створення звіту. Виберемо поля tviddily.tel, tvidom.pidrozdil, tvidom.fio, tzarobitok.dat та tzarobitok.zar і перейдемо до наступного етапу роботи майстра.
Рисунок 6.1 Вибір рівнів угруповання
Встановимо рівні угруповання за датою, за підрозділом та за прізвищем (див. рис.6.1). Кнопка Группировка відкриває вікно (див. рис.6.2), в якому для поля dat вибираємо зі списку варіант угруповання по кварталам.
Рисунок 6.2 Вибір інтервалів угруповання
На наступному етапі роботи майстра вкажемо поле dat для сортування, а кнопкою Итоги відкриється вікно, в якому ми встановимо потрібні прапорці (див. рис.6.3).
Рисунок 6.3 Вибір підсумкових функцій
На наступних етапах виберемо приблизний варіант зовнішнього вигляду звіту та його імя. Після редагування в Конструкторі звіт матиме такий вигляд, як на рисунку 6.4.
Рисунок 6.4 Фрагмент звіту
Відкриємо створений звіт в режимі Конструктора (див. рис.6.5). Замінимо запропонований формат виведення кварталу на такий:
=Format$ ( [dat] ; "Квартал " & " q , yyyy " & " рік" )
Замінимо англійські підписи українськими, вилучимо зайві підсумки, змінимо розмір шрифтів, тощо.
Заголовок використовується для розміщення підписів. Їхнє розташування залежить від користувача. Група може навіть не мати заголовку. Примечание группы використовується для виведення підсумків.
Щоб добавити (вилучити) Заголовок / примечание отчета, треба в меню Вид встановити (зняти) позначку на цьому пункті.
Для того, щоб у звіті (див. рис.6.4) прізвище одного робітника не виводилось багато разів, можна перенести це поле з області даних до заголовку групи fio, або залишити поле на місці, але встановити для нього у вікні властивостей Не выводить повторы значення Да.
Рисунок 6.5 Конструктор звіту
Конструктор дозволяє відміняти та добавляти рівні угруповання. Для цього треба в меню Вид обрати пункт Сортировка и группировка. Відкриється вікно (див. рис.6.6). Щоб добавити рівень угруповання, треба вибрати поле зі списку або ввести вираз і встановити значення Да для однієї або обох властивостей Заголовок та Примечание группы. Для кожного рівня вказується порядок сортування.
До розділів звіту можна вставляти рисунки з файлів. Для цього використовують меню Вставка, пункт Рисунок.
Рисунок 6.6 Рівні угруповання звіту
Меню Файл Экспорт дозволяє здійснювати експорт звітів до MS Word в форматі rtf (rich text format).
Тема роботи: Робота з об'єктами DAO. Створення модулів.
Мета роботи: навчитися створювати коди програм на VBA, які добавляють та видаляють записи, встановлюють фільтр, відшукують записи, що задовольняють певній умові.
DAO (Data Access Objects) обєкти доступу до даних використовуються для керування базами даних з усіх додатків, які підтримують VBA. Для цього в редакторі VBA в меню Tools References треба підключити бібліотеку обєктів Microsoft DAO 3.6 Object Library.
Для роботи з базою даних можна описувати змінні як обєкти доступу до даних Database, Recordset, Querydef та ін. Як і для будь-якої об'єктної змінної її треба спочатку оголосити, а тільки потім встановити посилання на об'єкт за допомогою оператора Set. Наприклад, така послідовність команд описує обєктні змінні dbMyDB та rsRec, а метод OpenRecordset створює в активній базі даних обєкт Recordset динамічний набір записів на основі даних таблиці tvidom.
Dim dbMyDB As Database , rsRec As Recordset
Set dbMyDB = CurrentDb
Set rsRec = dbMyDB . OpenRecordset ( "tvidom", dbOpenDynaset)
Розглянемо деякі властивості та методи об'єкта Recordset.
В динамічному наборі записів новий запис завжди добавляється в кінець набору, тому перейти на нього можна і за допомогою методу MoveLast, і за допомогою закладки Bookmark. В обєкті Recordset типа таблиці з активним індексом місце нового запису визначається порядком сортування.
Задача 7.1. Створити процедуру, яка добавляє новий відділ до таблиці tvidom.
Sub AddRecord ( )
Dim r As Recordset
Set r = CurrentDb . OpenRecordset ( " tviddily " , dbOpenDynaset)
r. AddNew
r!pidrozdil = InputBox("Введіть відділ")
r!tel = InputBox("Введіть телефон")
r!shef = InputBox("Введіть прізвище начальника")
r. Update
End Sub
Умови для пошуку або фільтру можна записувати власноруч або використовувати метод BuildCriteria. Щоб перевірити, чи знайдено потрібний запис, використовують властивість NoMatch.
BuildCriteria (“поле ”, тип_даних_поля , текстовий_вираз)
поле це імя поля, в якому здійснюється пошук, воно записується в лапках (це може бути й функція або вираз рядкового типу);
тип_даних_поля це внутрішня константа Access, VBA, DAO або ADO; використовують одну з таких констант:
dbBoolean , dbByte , dbChar , dbCurrency , dbDate , dbInteger , dbLong , dbMemo , dbNumeric , dbSingle , dbText , dbTime
текстовий_вираз це змінна, яка містить зразок для пошуку або сам вираз для пошуку у вигляді текстової константи.
Задача 7.2. Знайти в таблиці tvidom прізвище людини, яка народилася до 1970 року (поле dtr дата народження).
Sub Пошук ( )
Dim r As Recordset , strCriteria As String , fam As String
Set r = CurrentDb . OpenRecordset ( " tvidom" , dbOpenDynaset)
strCriteria = BuildCriteria ( "Year (dtr) " , dbInteger , "<1970" )
r . FindFirst strCriteria
If r . NoMatch( ) Then
MsgBox " Такої людини немає! "
Else
fam = r ! fio
MsgBox fam
End If
End Sub
Для продовження пошуку треба використати метод FindNext.
Задача 7.3. Підрахувати кількість людей в таблиці tvidom, які народилися раніше 1970 року. Використаємо інший критерій пошуку.
Sub кількість( )
Dim r As Recordset , strCriteria As String , n As Integer
Set r = CurrentDb . OpenRecordset ( " tvidom" , dbOpenDynaset )
strCriteria = BuildCriteria( "dtr" , dbDate , "<1170")
r . Filter = strCriteria
Set r = r . OpenRecordset
If r . RecordCount > 0 Then
r . MoveLast
n = r . RecordCount
MsgBox " Таких людей " & Str(n)
Else
MsgBox " Таких людей немає! "
End If
End Sub
Задача 7.4. Підрахувати кількість чоловіків та жінок в таблиці tvidom. Використаємо класичний алгоритм підрахунку кількості.
Sub Стать()
Dim r As Recordset , m As Integer, f As Integer
Set r = CurrentDb . OpenRecordset (" tvidom", dbOpenDynaset )
m = 0: f = 0
r . MoveFirst
Do Until r . EOF
If r ! pol = "чоловік" Then
m = m + 1 ' m - кількість чоловіків
Else
f = f + 1 ' f - кількість жінок
End If
r . MoveNext
Loop
MsgBox "Чоловіків " & Str(m) & Chr(13) & "Жінок " & Str(f)
End Sub
1 Створення об'єкта Recordset, типи об'єкта.
2 Метод OpenRecordset і його параметри.
3 Методи об'єкта Recordset і їхнє призначення.
4 Властивості об'єкта Recordset.
5 Метод BuildCriteria та його використання.
6 Використання циклів для розрахунків в таблицях.
Написати програми, які відчиняють таблиці як набори записів і виконують такі дії:
1 добавляють новий запис до головної таблиці та заповнюють його даними;
2 відшукують потрібний запис і змінюють дані в ньому;
3 встановлюють фільтр та підраховують скільки записів задовольняють умовам фільтру;
4 вилучають записи з підпорядкованої таблиці, які задовольняють певній умові.
Тема роботи: Створення форм для вирішення задач.
Використання VBA в формах.
Мета роботи: навчитися створювати форми в режімі коструктора та коди програм за допомогою VBA.
В формі розміщені наступні елементи керування:
Рисунок 8.1 Результат роботи
Текст програми для кнопки ПОШУК:
Private Sub Кнопка1_Click()
Dim zap As Recordset, s1 As String, s2 As String, s3 As String
Dim name1 As String, kol As Integer
Set zap = CurrentDb.OpenRecordset("tviddily", dbOpenDynaset)
vidl.SetFocus
name1 = vidl.Value
zap.FindFirst "[pidrozdil]='" & name1 & "'"
tel.SetFocus
tel.Text = zap![tel]
fam.SetFocus
fam.Text = zap![shef]
vidl.SetFocus
s1 = "SELECT tvidom.pidrozdil,tvidom.tn,tvidom.fio,”
s2=”tvidom.dtr,tvidom.pol,tvidom.ditej,tvidom.sem FROM tvidom” s3=” WHERE tvidom.pidrozdil=vidl.Value;"
spisok1.RowSource = s1 & s2 s3
kol = spisok1.ListCount
kl.SetFocus
kl.Text = kol - 1
End Sub
Приклад 8.2 Створити форму для додавання запису про нового робітника у таблицю „tvidom”
1 Події форми Open , Load, Resize, Activate, , Current.
2 Поняття підпорядкованої форми.
3 Посилання на елементи керування форми.
4 Обєкт DoCmd та його методи.
5 Передача значень параметру від однієї форми до іншої.
1 Створити форму для додавання нового запису у будь-яку таблицю свого варіанту.
2 Написати програму для пошуку даних згідно умови та вивести у форму отримані результати.