Застосування та редагування макросів 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Застосування та редагування макросів



Для виготовлення макроса необхідно у вікні База даних встановити перемикач на Макроси і натиснути кнопку Створити, подібно до того, як ми створювали інші об’єкти БД. Це приводить до появи вікна Макрос в режимі конструктора, яке з готовим макросом New_Platn, призначеним для відкриття форми Platnyky_f, показане на рисунку 3.31. Вікно макроса складається трьох частин: верхньої та двох нижніх – лівої і правої. Верхня частина має 5 полів (зліва направо): поле виокремлення рядка (в ньому видно затемнений трикутник), ім’я макрокоманди (яких може входити декілька в склад даного макроса) та примітку. Внизу зліва вікно надає можливість задати аргументи макроса, зправа міститься коротка ситуативна Дію (макрокоманду), яку повинен виконувати макрос, можна вибрати з кишеньки в полі Макрокоманда. На рисунку 6.5 якраз показаний момент вибору дії Відкрити форму. В нижній частині вікна показані параметри цього макроса: ім’я форми та режим даних. Нагадаємо, що в нашому випадку форма Oplaty_f повинна бути призначена лише виключно для внесення відомостей про нового платника, тому вибраний режим даних Додавання. Отже, наш макрос New_Platn складається всього з однієї макрокоманди.

Працездатність макроса перевіримо шляхом його запуску з вікна База даних. Виконавши команду Запуск, ми одержимо на екрані форму Platnyky_f, готову для (причому, лише – для) внесення нових даних. Форма повинна містити тільки три чисті (вільні) поля, призначені для внесення прізвища, імені та адреси платника, а також місце для фото. Ніяких інших приєднаних елементів та елементів управління вікном форма не повинна мати, крім однієї – для закриття.

 

Складання модулів

 

Програма для перевірки наявності грошей платника. Створити програму для перевірки таблиці Oplaty_t на наявність грошей платника, код якого міститься в полі Kod_p форми Oplaty_f, у фонді, код якого міститься в полі Kod_f. Якщо підсумоване значення поля Suma таблиці менше за число, яке запрошене в полі Suma форми, то видати на екран загальну суму, взяту з таблиці, і повідомлення про те, що грошей нестає. Нагадаємо, що перевірку наявності грошей платника потрібно виконувати тоді, коли він хоче забрати їх з фонду. Тоді в полі Suma форми число ставиться зі знаком мінус.

 

Option Compare Database

Option Explicit

 

Function Is_gr_pl () As Boolean

Dim b As Boolean, s As Single

Dim aRS As New ADODB.Recordset

Set aRS = New ADODB.Recordset

aRS.Open "Oplaty_t", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

aRS.MoveFirst

s = 0

Do While Not aRS.EOF

b = True

b = b And aRS.Fields(0).Value = Forms![Oplaty_f]![Kod_p]

b = b And aRS.Fields(1).Value = Forms![Oplaty_f]![Kod_f]

If b Then s = s + aRS.Fields(2).Value

aRS.MoveNext

Loop

s = s - [Forms]![Oplaty_f]![Suma]

If s >= Abs([Forms]![Oplaty_f]![Suma]) Then Is_gr_pl = True _

Else Is_gr_pl = False: MsgBox "Нестає грошей, є лише " & Str(Abs(s)) & " грн"

aRS.Close

Set aRS = Nothing

End Function

 

В цьому прикладі aRS – ім’я набору даних, aRS.MoveFirst – перехід на початок набору даних (таблиці), aRS.Fields(0).Value, Fields(1).Value – значення коду платника і фонду, aRS.Fields(2).Value – значення поля Suma в таблиці Oplaty_t, s – підсумована в таблиці кількість грошей платника в заданому фонді. Мається на увазі, що перед використанням даної програми таблиця Oplaty_t була обновлена даними форми. Тоді з поля Suma форми занеслося зайве значення, цю обставину враховує команда s = s - [Forms]![Oplaty_f]![Suma]. Функція Is_gr_pl має тип Boolean і видає значення True або False залежно від наявності грошей платника.

 

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

 

Option Compare Database

Option Explicit

 

Public Sub Zabr_zapys ()

Dim aRS As New ADODB.Recordset

Set aRS = New ADODB.Recordset

aRS.Open "Oplaty_t", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

aRS.MoveLast

aRS.Delete (adAffectCurrent)

aRS.Update

aRS.Close

Set aRS = Nothing

End Sub

 

Програма для видачі квитанції. Запрограмуємо кнопку Kwytanc_knopka для видачі квитанції з форми Oplaty_f. Для цього виготовимо та відредагуємо макрос, він потребує редагування, бо можуть виникати ситуації, коли видача квитанції недопустима, наприклад, касир ненавмисно натиснув (поклав якийсь предмет) на кнопку. Тому він повинен мати можливість відмінити або підтвердити свій намір.

Текст програми для кнопки Kwytanc_knopka після редагування має вигляд:

 

Option Compare Database

Option Explicit

 

Private Sub Kwytanc_knopka_Click ()

Dim k As Variant, rezult As Variant

On Error GoTo Err_Kw

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord,, acMenuVer70

DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5,, acMenuVer70

k = MsgBox("Підтвердіть видачу Квитанції", vbOKCancel)

If Not k = vbOK Then GoTo Ex1

If [Forms]![Oplaty_f]![Suma] < 0 Then If Not Is_gr_pl() Then GoTo Ex1

DoCmd.OpenReport "Kwytancija", acPreview ‘Режим перегляду

GoTo Ex

Ex1: DoCmd.Close

Call Zabr_zapys

DoCmd.OpenForm "Oplaty_f"

Ex: Exit Sub

Err_Kw: If Not Err.Number = 2046 Then GoTo mmm

 

 

 

 


Err.Clear

DoCmd.GoToRecord, "Oplaty_f", acLast

rezult = MsgBox("Неможливо видати квитанцію," & Chr(13) & Chr(10) & _

"підтвердіть намір знищити ОСТАННІЙ запис", vbYesNo)

If rezult = vbYes Then GoTo Ex1 Else GoTo Ex

mmm: MsgBox Err.Description

Resume Ex

End Sub

У програмі цього прикладу символи Chr(13) і Chr(10) є управляючими, вони дозволяють виводити повідомлення в два рядки, тобто переходити на новий рядок.

Команди програми

 

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord,, acMenuVer70

DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5,, acMenuVer70

 

застосовують метод DoMenuItem, який при відкритій формі виконує команди головного меню – в даному випадку, відповідно, ЗаписиЗберегти запис і ЗаписиОбновити. Ці команди скопійовані в програму з відповідних (інших) макросів для кнопок.

Команда Зберегти запис виконує тут ще одну функцію – вона приводить до виникнення помилки № 2046 під час спроби видати квитанцію для даних, уже занесених в таблицю Oplaty_t (повторна видача квитанціїї). Ця помилка перехоплюється програмою і використовується для забезпечення можливості знищення останнього запису таблиці. Нагадаємо, що під час виготовлення форми Oplaty_f її властивість AllowEdits (Дозволити зміну) була переведена в стан False (Ні).

Програма для видачі квитанції запускається на виконання за допомогою відповідної кнопки на формі Oplaty_f. Алгоритм видачі квитанції показаний на рисунку 3.32.

 

Рекомендована література

 

1. Смирнов С.Н., Задворьев Н.С. Работаем с Oracle: Учебное пособие. – М.: Гелиос АРВ, 2002. – 496 с.

2. Васкевич Д. Стратегии клиент/сервер. - Киев: Диалектика, 1997.

3. Грабер М. Введение в SQL. - М.: Лори, 1996. - 379 с.

4. Дейт К. Введение в системы баз данных //6-издание. - Киев: Диалектика, 1998. - 784 с.

5. Мейер М. Теория реляционных баз данных. - М.: Мир, 1987. - 608 с.

6. Глушаков С.В., Третьяков Ю.В., Головаш О.А. Администрирование Oracle 9i. – Харьков: Фолио, 2003. – 695 с.

7. Інформатика: Комп’ютерна техніка. Комп’ютерні технології./За ред. О.І. Пушкаря – К.: Видавничий центр “Академія”, 2001

8. Руденко В.Д., Макарчук О.М., Патланжоглу М.О. Практичний курс інформатики./За ред. Мадзігона В.М. – К.: Фенікс, 1997

9. Шафрин Ю.А. Информационные технологии. – М.: Лаборатория базовых знаний, 1998

10. Перри Грег. Освой самостоятельно Microsoft 2000 за 24 часа.: Пер. с англ.: Уч. пос. – М.: Издательский дом “Вильямс”, 2000

11. Киммел П. Освой самостоятельно программирование для Microsoft Access 2000 за 24 часа.:Пер. с англ.: Уч. пос. – М.: Издательский дом "Вильямс", 2000

12. Келли Д. Самоучитель Access 97 – СПб: Издательство "Питер", 2000

13. Пасько В. Ассess 97 (руссифицированная версия) – К.: Издательская группа BHV, 1997

14. Каратыгин С.А. Access 97. – М.: Сх. Кн. Компания, 1997 (Серия без проблем)

15. Бакаревич Ю.Б., Пушкина Н.В. Microsoft Access 2000. – Санкт-Петербург: СПб. БХВ, 1999

16. Прокурин Г.С., Булыга К.Б. Компютерная техника и программирование. Часть 3. Системы управления базами данных. – К.: Украинско-финский институт менеджмента и бизнеса, 1998

17. Васильев Д.В. Делопроизводство на компютере. – М.: “ПРИОР”, 1996

18. Системи оброблення інформації. Організація даних. Терміни та визначення /Державний стандарт ДСТУ 2505-94. – К. – Держстандарт України, К.=1995

 



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 186; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.222.12 (0.017 с.)