Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Застосування та редагування макросів↑ ⇐ ПредыдущаяСтр 5 из 5 Содержание книги Поиск на нашем сайте
Для виготовлення макроса необхідно у вікні База даних встановити перемикач на Макроси і натиснути кнопку Створити, подібно до того, як ми створювали інші об’єкти БД. Це приводить до появи вікна Макрос в режимі конструктора, яке з готовим макросом 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; просмотров: 204; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.124.23 (0.01 с.) |