Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratorna #3.doc
Скачиваний:
1
Добавлен:
22.04.2019
Размер:
2.15 Mб
Скачать

ЛАБОРАТОРНА РОБОТА №6.

Тема: Створення форм .Робота з формами в Access.

Мета: Навчитися створювати форми та працювати з формами

Прилади та обладнання: IBM PC, OC Windows NT.

Хід роботи:

Виконати приклади створення форм

Приклад 1. Створення форми, яка використовувати­меться лише для доповнення даних таблиці

Створимо форму для доповнення таблиці Клиенты бази даних "Борей " новими записами, які міститимуть інформацію про фізичні особи (не організації)

Форма повинна містити усі поля таблиці Клиенты, крім Должность, Обращаться к, Факс. Для створення такої форми найкраще скористатися автоформою (в стовпчик), а потім внести зміни у проект в режимі конструктора.

Вибравши у діалоговому вікні Новая форма (мал. 4.15) елемент Автоформа: в столбец та таблицю Кли­енты, програма створить нову форму, у режимі конструк­тора знищимо елементи керування (написи та поля), які відповідають полям Должность, Обращаться к, Факс. Після зміни розташування елементів керування, які залишилися в проекті форми, збережемо форму з назвою Покупці. За допомогою створеної форми можна переглянути або від­редагувати усі записи таблиці Клиенты не залежно від то­го, чи вони відображають інформацію про фізичну особу (окремого покупця), чи юридичну (організацію).

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

Для зміни зовнішнього вигляду скористаємося фун­кцією автоформатування, яка почне працювати після на­тискання кнопки _ Автоформат панелі інструментів. Виберемо стиль оформлення (наприклад, Официальный).

Задамо параметри форматування елементам форми, виділяючи їх окремо або групами:

• змінимо тексти у написах на українські;

• задамо для написів шрифт Агіаl, а для даних у полях форми - Times New Roman. Розмір шрифту у всіх еле­ментах повинен бути 12;

• задамо для поля, в яке заноситиметься інформація поля КодКлиента, шрифт Arial, курсив, розмір 14, зелений колір символів;

• для всіх елементів керування задамо розмір, який від­повідатиме розміру даних (пункт по размеру данных спи­ску Размер контекстного меню елементів).

• підберемо розміри областей форми так, щоб усі елеме­нти повністю відображатися у ній.

• відкриємо форму у режимі форми, задамо оптималь­ний розмір для перегляду на екрані та збережемо фор­му. Після повторного відкриття, форма матиме задані розміри на екрані.

• змінимо властивості форми у відповідному вікні влас­тивостей, а саме:

оскільки за замовчуванням у рядку заголовку форми міститься стара назва Клиенты, змінимо її на Покупці - вве­демо нову назву у комірку Подпись;

• наша форма повинна використовуватись лише для доповнення даних, тому у комірці Ввод данных введемо параметр Да;

можна заховати кнопки переходу у вікні форми, за­давши у крмірці Кнопки перехода опцію Нет.

• у області заголовку помістимо напис Нувий покупець та

задамо для нього наступні параметри:

шрифт - Arial, курсив, 14 пт;

вирівнювання тексту напису - по центру;

розмір - за розміром даних;

змінимо колір фону напису та перемістимо напис так, щоб він опинився посередині області заголовку.

Після внесення описаних вище змін, форма матиме вигляд, подібний до наведеного на мал. 4.30.

a

Мал. 4.30.Вигляд форми Покупці: а) у режимі конструктора: б) у режимі форми

У формі можна створити поле зі списком, яке відобра­жатиме значення поля Страна, причому при введенні да­них нового покупця можна буде назву існуючої країни ви­брати зі списку, а назву нової - ввести з клавіатури.

Дня створення такого поля натиснемо кнопку панелі елементів, яка відповідає елементу Поле со списком, та додамо цей елемент в області даних форми; при цьому за­пуститься майстер створення нового елемента.

Послідовність створення елемента за допомогою майстра такий:

перший крок - вибираємо спосіб формування списку значень поля; у нашому випадку - об'єкт буде використо­вувати значення таблиці (мал. 4.31);

  • другий крок - вибираємо таблицю, в якій знаходиться потрібне поле (Клиенты);

  • третій крок - зі списку полів таблиці Клиенты вибе­ ремо поле Страна, дані з якого будуть утворювати список поля;

четвертий крок - задаємо ширину стовпця списку

п'ятий крок - задаємо опцію, яка дозволить за­пам'ятати у полі Страна вибране зі списку значення, тобто активізуємо радіо клавішу Сохранить в поле (мал. 4.32);

шостий крок - задаємо текст напису, який буде зв'яза­ний з полем (у нашому випадку-Країна).

Мол. 4.31. Діалогове вікно майстра для вибору способу формування значень списку

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

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

Для того, щоб створене поле зі списком виконувало задані в умові задачі функції, а саме дозволяло доповнюва­ти список назв країн, змінимо деякі його властивості: v на вкладці Макет (ці властивості впливають на відобра­ження значень у полі):

Число столбцов - 1;

Ширина столбцов - 2,5 см;

Ширина списка - 2,5 см;

на вкладці Данные:

Источник строк - SELECT [Клиенты].[Страна] FROM Клиенты;

Ограничиться списком - Нет; на вкладці Другие:

Имя - Країна

Для того, щоб у списку країн не повторювалися на­зви, використаємо предикат мови SQL - DISTINCT, який при виборі значень поля Страна назву кожної країни буде ви­водити лише один раз: у рядку властивості Источник строк (вкладка Данные вікна властивостей поля зі списком) за­пишемо вираз

SELECT DISTINCT [Клиенты].[Страна] FROM Клиенты.

У діалоговому вікні Последовательность перехода (яке відкриється після виконання команди Вид => После­довательность перехода) задамо послідовність переходу між полями форми відповідно до відображення їх на ек­рані, а саме: Код клієнта, Ім'я, Адреса, Місто, Область, Індекс, Країна, Телефон.

Збережемо зміни у проекті форми.

Відкривши форму в режимі форми, на екрані з'являється чистий бланк для занесення інформації. Кла­вішею [Tab] чи [Enter] можна переміщатися по полях фо­рми та заповнювати її даними. Для внесення даних про країну можна скористатися існуючим списком або ввести назву нової країни з клавіатури. Після повторного відкри­вання форми, назва введеної країни уже знаходитиметься

у списку.

Заповнивши останнє поле, для збереження інформа­ції у таблиці достатньо натиснути клавішу [Tab] чи

[Enter].

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

Використовуючи форму Покупці, доповніть таблицю Клиенты декількома записами.

Приклад 2. Створення складеної форми

Створимо форму, за допомогою якої можна було б понов­лювати базу даних одночасно інформацією про постачальників (таблиця Поставщики) та про товари (таблиця Товары), які вони постачають.

У БД ''Борей" створені форми, які дозволяють пере­глядати список існуючих товарів (Список товаров), допов­нювати даними окремо таблиці товарів (Товары) та постачальників (Поставщики).

Форми Список товаров та Товары існують незалежно одна від одної, а форма Поставщики окрім того, що дозво­ляє переглядати, редагувати та доповнювати записи від­повідної таблиці, може також використовуватись для пе­регляду та доповнення записів таблиці Товары, які стосу­ються конкретного постачальника (для цього використо­вуються кнопки форми Просмотр товаров і Ввод това­ров, які виводять на екран форми Список товаров та Това­ры). Отже, форма Поставщики зв'язана з формами Список товаров та Товары.

Створимо складену форму, яка виводитиме на екран усі поля, потрібні для одночасного заповнення обох таб­лиць, тобто створюючи новий запис про постачальника (таблиця Поставщики), можна зразу ж заносити інформа­цію про запропонований ним товар у таблицю Товары.

Почнемо процес створення такої форми з викорис­тання майстра форм. Виберемо назви усіх обов'язкових полів таблиць Поставщики та Товары (найкраще викорис­тати усі поля таблиць) та задамо у діалоговому вікні майс­тра опцію Подчиненные формы. Далі виберемо табличний ви­гляд для представлення даних у підпорядкованій формі, а також стандартний стиль оформлення. Головну форму назвемо Постачальник_новии, а підлеглу - Товар_новий. Від­кривши створену форму у режимі конструктора, знищи­мо деякі необов'язкові поля, а саме: Обращаться к, Долж­ность та Домашняя страница. Змінимо тексти у написах на українські, а також можемо змінити параметри шрифту для елементів керування головної форми. Збільшимо на­пис, який відповідає підлеглій формі (Товар_новии) на Но­вий товар та від форматуємо його так, щоб утворювався ефект тіні (зразок відредагованої форми показано на мал. 4.33). У головній формі не варто редагувати підлеглу форму.

Мал. 4.33. Зразок створеної складеної форми

Підлегла форма існує на вкладці Формы вікна бази даних як самостійний об'єкт (Товар_новии), тому для реда­гування відкриємо її у режимі конструктора.

Оскільки в процесі роботи майстра ми задали табли­чний вигляд дчя підлеглої форми, то розміщення полів у конструкторі не відіграє ніякої ролі. Знищимо елементи керування, які зв'язані з необов'язковими полями Постав­щик, Единица измерения, Ожидается, Минимальный запас, По­ставки прекращены. Також можна знищити усі написи у за­головку та не відображати цю область в режимі конструк­тора, оскільки вона не відображатиметься у підлеглій фо­рмі. Переглянувши підлеглу форму у режимі таблиці, мо­жна підібрати оптимальну ширину дтя кожного стовпця, а в режимі конструктора змінити підписи цих стовпців, відповідно до мал. 4.33 (властивість Имя вкладки Другие або Все вікна властивостей елемента керування).

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

У режимі форми створена форма виглядатиме поді­бно до показаної на мал. 4.33.

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

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

Використовуючи складену форму Постачальник_новии створіть запис для нового постачальника та 2-3 записи то­варів, який доставив цей постачальник. Доповніть також список товарів, які доставляє уже існуючий постачальник, новими найменуваннями..

Приклад 3 Створення складеної форми з обчислюваль­ним полем

Створимо форму (бланк замовлення) для роздрібних поку­пців, ціна реалізації яких на 10% більша за початкові/ ціну. Як­що вартість покупки перевищує 1000 у.о., то надається знижка у розмірі 2% на загальну вартість замовлення (у базі даних "Бо­рей" передбачена можливість надання знижки на окремий то­вар).

Крок 1. Оскільки нас цікавить бланк замовлення ли­ше для роздрібних покупців (для них поля Обращаться к та Должность приймають лише нульові значення), то для їх вибору з таблиці Клиенты потрібно створити запит 170-кущі_запит, який відображатиме усі не порожні поля, крім поля Факс, для яких вище згадані поля приймають нульове значення. Критерієм відбору у цьому випадку буде умова Is Null, яка накладається на поля Обращаться к та Долж­ность.

Крок 2. Для обчислення вартості замовлення з ураху­ванням ціни реалізації, знижок на окремі найменування, знижки на сумарну величину замовлення та вартість замо­влення з урахуванням сумарної знижки, створимо запит Замовлення_Сума, який міститиме поля таблиці Заказано (КодЗаказа, КодТовара, Цена, Количество, Скидка) та обчислю­вальне поле Вартість, у якому обчислюватиметься вартість замовленого товару (окремо кожного найменування) з урахуванням, знижки на товар у кожному замовленні. Об­числення здійснюватимуться за виразом [Цена]*[Количество]*(1-[Скидка]).

Вікно бланку запиту матиме вигляд, показаний на мал. 4.34.

Мал. 4.34. Вікно конструктора запиту Замовлення_Сума

Крок 3. Для створення форми скористаємось майст­ром форм, у якому:

на першому кроці виберемо поля, дані яких відобража­тимуться у формі:

із запиту Продавці _запит - усі поля;

із запиту Замовлення_Сума - усі поля, крім КодЗаказа-,

з таблиці Заказы - поля КодЗаказа і ДатаИсполнения.

на другому кроці задамо тип підлеглих форм, причому головною має виступати форма, у якій знаходяться поля запиту Покупецъ_запит (мал. 4.35), відповідно до запропо­нованого майстром вигляду представлення даних, бачимо, що у нашій формі буде дві підлеглі;

на наступних кроках виберемо табличне представлення для підлеглих форм, а також стиль оформлення (напри­клад рисунок суми) та збережемо створені форми під назва­ми: головна - Замовлення_роздріб, підлеглі - Номер замовлен­ня та Товари_роздріб.

Мол. 4.35. Діалогове вікно майстра створення форми із заданим виглядом представлення даних

Крок 4. Процес редагування створеної форми по­чнемо з внесення змін у підлеглі форми, які можна по чер­зі відкрити (як окремі об'єкти бази даних) у режимі кон­структора.

Редагування форми Номер_замовлення

Ця форма повинна відображати на екран код замов­лення та дату його виконання, тому вона може бути пода­на у вигляді простої форми (у вікні властивостей форми для властивості Режим по умолчанию (вкладка Макет або Все) задамо значення Простая форма). Далі перенесемо на­писи з області заголовку у область даних, заховаємо об­ласть заголовку, змінимо текст у написах на український, від форматуємо усі елементи керування та збережемо ці зміни у формі. У режимі конструктора форма матиме ви­гляд, подібний до наведеного на мал. 4.36.

Мал. 4.36-Вікно конструктора підлеглої форми Номер замовлення

Оскільки основна форма буде використовуватись ли­ше для створення нового замовлення, то у підлеглій формі Номер замовлення потрібно передбачити лише введення да­них (властивість Ввод данных) та не відображати кнопки пе­реходу (властивість Кнопки перехода), зменшивши тим са­мим розмір форми.

Редагування форми Товари__роздріб

Підлегла форма повинна відображати зміст замов­лення: перелік найменувань, ціну кожного артикулу (яка повинна бути на 10% більша за гуртову), кількість замов­лених товарів, розмір знижки на кожне найменування, а також вартість кожної партії товару з урахуванням знижки на товар.

Знищимо написи в області заголовку форми (оскіль­ки у основній формі підлегла Товари_роздріб відображати­меться у вигляді таблиці, розміщення полів та їх розміри у проекті не відіграють ролі, тому немає потреби форматувати їх зовнішній вигляд). При введенні даних про замов­лений товар потрібно враховувати 10% надбавку на ціну товару, тому змінимо поле КодТовара на поле зі списком, у якому відображатиметься назва товару та його роздрібна ціна.

Мал. 4.37. Вікно проектування запиту

Для цього знищимо поле КодТовара, а на його місці за допомогою майстра створення елементів керування, створимо поле зі списком, який складатиметься з двох полів таблиці Товары (Марка та Цена).

Задавши опцію для збереження даних зі списку у по­лі КодТовара, збережемо створене поле зі списком з назвою Найменування. У вікні властивостей цього елемента зміни­мо назву поля на Найменування. Для того, щоб у списку ві­дображалася роздрібна ціна, потрібно внести зміни у поле властивості Источник строк. Тут повинен знаходитись ви­раз, який збільшуватиме кожне значення поля Цена таб­лиці Товары на 10%.

Тому поміняємо назву поля і змінимо властивість Источник строк. Для цього, натиснувши кнопку побудовувача виразів у рядку цієї властивості, завантажимо конс­труктор запиту: відкриється вікно (мал. 4.37) конструктора інструкцій мови SQL.

Створимо нове обчислювальне поле Ціна_р, в якому повинна відображатись ціна для роздрібних покупців (введемо вираз [Цена]*1,1 у перший вільний стовпчик блан­ку конструктора запиту). Задамо грошовий формат для цього поля і змінимо підпис поля на Ціна. Знімемо опцію для відображення старого поля Цена, а задамо відобра­ження створеного обчислювального поля. Зберігши про­ект запиту, ми побачимо внесеш зміни у рядку властивос­ті: тут опиниться вираз SELECT Товары. КодТовара, Товары.Марка, [Цена]*1.1 AS Ціна_р FROM Товары.

Змінимо назви полів підлеглої форми (властивість Имя), а саме: Код товара на Найменування, Цена на Ціна, Ко­личество на К-стъ, Скидка на Знижка. Відобразивши форму в режимі таблиці пересвідчимося, що назви стовпців змі­нені. У цьому ж режимі розмістимо поля в послідовності Найменування, Ціна, К-сть, Знижка, Вартість та підберемо ширину стовпців так, щоб інформація у них добре відо­бражалася (найкраще використати функцію автоматично­го підбору ширини стовпців та задати якомога меншу ширину, оскільки у такому відображенні форма буде зна­ходитися у головній формі).

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

Для цього створимо поле, значення якого обчислю­ватимуться за виразом: =Зит([Вартість]), задамо формат Фиксированный та назвемо поле Всього. Оскільки таке поле створено у примітці, то в табличному режимі воно не ві­дображатиметься, але воно буде джерелом іншого поля, яке ми створимо у головній формі для виведенні даних про вартість замовлення. Після цього вигляд форми у ре­жимі конструктора може бути подібним до показаного на мал. 4.38.

Mai. 4.38. Вікно конструктора підлеглої форми Товари роздріб

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]