Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access заоч 2 часть.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
477 Кб
Скачать
☆

2.3 Індивідуальні завдання

Написати програми, які відчиняють таблиці як набори записів і виконують такі дії:

  1. добавляють новий запис до головної таблиці та заповнюють його даними;

  2. відшукують потрібний запис і змінюють дані в ньому;

  3. встановлюють фільтр та підраховують скільки записів задо­вольняють умовам фільтру;

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

3 Лабораторна робота №8

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

Мета роботи: навчитись створювати прості форми та форми з підпорядкованою формою, використовуючи таблиці або запити.

3.1 Створення форм

Форми можна створювати трьома різними способами:

  • за допомогою автоформи на основі таблиці або запиту;

  • за допомогою майстра форм:

  • в режимі конструктора.

Автоформа створюється для всіх полів таблиці або запиту. Якщо вона створюється для таблиці, що має зв’язані таблиці, то на формі теж будуть виведені всі їхні поля та записи.

Завдання. Створити автоформу для таблиці tvidom.

Для цього виділимо таблицю tvidom і натиснемо кнопку Новый объект на панелі інструментів, а потім виберемо пункт Автоформа.

Форму буде створено по двом таблицям tvidom та tzarobitok (див. рис. 3.1). Таблиця tzarobitok буде вбудована до головної форми. В кон­структорі можна потім змінити вигляд форми.

Рисунок 3.1 – Автоформа для таблиці tvidom

Лабораторна робота № 9

Тема роботи: Використання VBA в формах.

Мета роботи: навчитися створювати коди програм за допомо­гою VBA та використовувати методи і події об’єктів форм.

4.1 Робота з формами

Форми мають багато спільного зі звітами. Вони мають однакові розділи, однакові елементи керування.

Посилання на форму можна виконати одним із способів:

Forms ( „ ім’я_форми ”) або

Forms ! ім’я_форми або

Forms ! [ім’я_форми] , якщо в імені форми є пробіли.

Події форми, коли вона відкривається вперше, здійснюються в такому порядку одна по одній:

Open – форма вже відкрита, проте перший запис ще не виведений;

Load – форма відкривається і виводиться на екран;

Resize – подія виникає, коли відкривається форма, а також, коли змінюються будь-які її розміри;

Activate – форма стає активним вікном;

Current – запис отримує фокус і стає поточним, а також під час оновлення екрану або виконання запиту для форми.

Об’єкт DoCmd дозволяє з середовища VBA викликати методи Access. Синтаксис:

DoCmd . метод (перелік параметрів)

Найчастіше використовуються такі методи:

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

  • FormName – обов’язковий параметр, який визначає ім’я форми;

  • View – режим, в якому форма відкривається; визначається кон­стантою зі списку: acNormal (за замовчанням), acPreview, acFormPivotTablе, acFormPivotChart; acDesign, acFormDS;

  • FilterName – ім’я фільтру, який збережений у вигляді запиту і використовується для відбору і сортування записів;

  • WhereCondition – вираз на мові SQL (без слова where) для відбо­ру записів; заміняє фільтр, якщо відсутній попередній параметр;

Наприклад, щоб відкрити форму tvidom для певного робітника, можна побудувати критерій та відкрити форму таким чином:

kriteria = BuildCriteria("fio" , dbText , InputBox("Введіть прізвище"))

DoCmd.OpenForm "tvidom", , , kriteria

  • DataMode – режим введення даних в форму, якщо форма відкри­вається в режимі таблиці або форми; можливі значення парамет­ру: acFormAdd, acFormEdit, acFormReadOnly; за замовчанням –acFormPropertySettings (використовуються властивості форми);

  • WindowMode – режим вікна, в якому відкривається форма: acWindowNormal (за замовчанням), acDialog, acHidden, acIcon;

  • OpenArgs – строковий вираз, який передається як параметр у форму, що відкривається; він встановлює властивість форми OpenArgs. Значення цієї властивості найчастіше використовують у модулі форми в кодах на подію Open форми.

Задача 4.1 Відкрити автоформу tvidom (див. рис. 3.1) із заголов­ком "tvidom–автоформа".

Спочатку треба створити модуль для виклику форми

Sub заголовок_форми()

DoCmd.OpenForm "tvidom" , , , , , , "tvidom–автоформа"

End Sub

А потім в коді на подію Load форми надати властивості Caption значення аргументу OpenArgs

Private Sub Form_Load()

Me.Caption = OpenArgs

End Sub

  • ShowAllRecords – відміняє дію будь-якого фільтру в активній таб­лиці або наборі записів, виконує повторний запит і забезпечує ви­ведення всіх записів (і нових також); метод не має аргументів.

  • OpenDataAccessPage – відкриває сторінку доступу до даних; має 2 аргументи: ім’я сторінки (DataAccessPageName) – обов’язковий параметр та режим (View); за замовчанням встановлює режим пе­регляду (acDataAccessPageBrowse), можливий і режим конструкто­ра (acDataAccessPageDesign).

  • OpenQuery – відкриває запит, ім’я якого вказувати обов’язково.

  • OpenReport – відкриває звіт із вказаним ім’ям.

Задача 4.2 Створити послідовність форм для пошуку відомостей про заробітки певного робітника. Пошук здійснювати за прізвищем або за табельним номером.

Спочатку створимо за допомогою майстра форм підпорядковану форму, яка буде відображувати відомості про заробітки. Виберемо для форми тип Режим таблицы. Включимо до форми поля dat і zar (дата роботи і заробіток) таблиці tzarobitok і встановимо порядок сортування за датою. В розділі Примечание формы для обчислення загальної суми заробітків розмістимо Поле1 та встановимо для нього властивість Данные = Sum ( [zar] ). Конструктор форми зображений на рис. 4.1.

Рисунок 4.1 – Конструктор форми для таблиці tzarobitok

Далі створимо наступну форму для даних з таблиці tvidom. Ви­беремо поля tn і fio (табельний номер і прізвище) та тип Одиночная форма. В режимі конструктора перетягнемо на макет цієї форми з вікна бази даних піктограму форми tzarobitok подчиненная форма. До форми tvidom буде вбудована підпорядкована форма. В конструкторі у вікні властивостей Подчиненная форма / отчет на вкладці Данные будуть встановлені поля, за якими здійснюється зв’язок між таблиця­ми. Це властивості:

Подчиненные поля

tn

Основные поля

tn

Якщо підпорядковану форму запускати окремо, то будуть підсу­мовані всі заробітки. А якщо запускати головну форму, то враховува­тись будуть заробітки тільки одного конкретного робітника. Щоб відо­бразити підсумки на формі tvidom, розмістимо нове Поле2 в розділі Примечание формы з підписом Усього нараховано і встановимо для нього властивість Данные

= IIf ( IsNull ( [tzarobitok подчиненная форма]![Поле1] ) ;0 ;

[tzarobitok подчиненная форма]![Поле1] )

Тобто, якщо людина не має заробітків, для неї немає підсумків в таблиці tzarobitok, а в Поле2 відображується 0. Форма tvidom буде викликатися головною формою для одного робітника, тому встанови­мо для неї властивість Кнопки перехода=Нет.

Тепер створимо головну форму. Розмістимо на ній 2 вільних Поля, командну кнопку та написи (див. рис. 4.2).

Рисунок 4.2 – Конструктор головної форми

Після запуску форми треба ввести прізвище або табельний но­мер людини. Якщо клікнути мишкою на полі fam (прізвище), то зни­щується вміст поля nn (табельний номер) і навпаки. Якщо такої люди­ни немає, про це виводиться повідомлення. Створимо коди програм на події Click для полів та командної кнопки „Знайти”.

Option Compare Database

Public kriteria As String, nom As Integer

Private Sub Знайти_Click()

‘ код на кнопку Знайти

Dim dbMyDB As Database, rsRec As Recordset

Dim name As String, kriteria As String, nom as Integer

Set dbMyDB = CurrentDb

Set rsRec = dbMyDB.OpenRecordset ( "tvidom" , dbOpenDynaset)

If fam.Value > " " Then

‘ побудова критерію за прізвищем

name = fam .Value

kriteria = BuildCriteria ( "fio", dbText , name)

ElseIf nn .Value > 0 Then

‘ побудова критерію за табельним номером

nom = nn .Value

kriteria = BuildCriteria ("tn", dbInteger , nom)

Else

MsgBox "Заповніть поле для пошуку!"

Exit Sub

End If

‘ пошук запису в таблиці tvidom , що задовольняє критерію

rsRec.FindFirst kriteria

If rsRec.NoMatch Then

‘ якщо запис не знайдено

MsgBox "Такої людини немає"

Exit Sub

End If

DoCmd . Close ‘ закрити форму

‘ виклик форми tvidom

DoCmd . OpenForm "tvidom", , , kriteria

End Sub

Private Sub fam_Click()

‘ знищується вміст поля nn

nn.Value = ""

End Sub

Private Sub nn_Click()

‘ знищується вміст поля fam

fam = ""

End Sub

Рисунок 4.3 – Зразок роботи головної форми

Спочатку викликається головна форма (див. рис. 4.3). В одне з полів вводиться табельний номер або прізвище людини. Кнопка Знайти закриває головну форму і викликає форму tvidom з даними тільки про вказану людину (див. рис. 4.4).

Можна форму tvidom в режимі конструктора розмістити на головній формі. Тоді в коді програми буде зайвим рядок

DoCmd . OpenForm "tvidom", , , kriteria

Рисунок 4.4 – Зразок роботи форми tvidom

У вікні властивостей головної форми для об’єкту Подчиненная форма / отчет на вкладці Данные треба вказати елементи, за якими здійснюється зв’язок між формами, а саме:

Подчиненные поля

tn

Основные поля

nn

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