Смекни!
smekni.com

Использование макросов для программирования в MS ACCESS

Постановказадачи.

Использованиемакросов вконкретномприложениипредлагаетсярассмотретьна примереследующейзадачи.

Приоткрытии базыданных "АРМFORMSNAVIGATOR1.0" сначала наэкран выводитсяприглашениек работе и затемоткрываетсяосновное окнонавигатора.

Длявыполненияэтих действийиспользуетсямакрос AUTOEXEC.

Онвыполняетсясразу при открытиибазы данныхв автоматическомрежиме. Листингмакроса см. вприложениях.

ОкноFORMSNAVIGATOR1.0содержит следующиеэлементы управления:Группа переключателей"Выбор формы"и Кнопка "Запуск".Имеется возможностьвыбора необходимойформы при помощиГруппы переключателей.Всплывающаяподсказкапомогает даженеопытномупользователюв организациинаиболее оптимальнойработы. Послеосуществлениявыбора необходимойформы следуетнажать кнопку"Запуск". Кнопкатакже имеетвсплывающуюподсказку.После нажатиякнопки будетзагруженанеобходимаяформа. Эта функцияреализованав макросе ДЛЯ_ГРУППЫ.Листинг егоприведён вприложениях.

Однакоследует отметитьтот факт, чтоформа "Финансыфирмы" имеетограниченныйпаролем доступ.Реализацияэтой функциизаложена вмакрос ПАРОЛЬ.Листинг егоприведён вприложениях.В данном случаепосле нажатиякнопки "Запуск"будет выведеноследующеесообщение

Послечего на экранепоявляетсяприглашениедля ввода пароля:Кнопка "Вводпароля" и специальноеполе для него.

Нажатиекнопки "Вводпароля" запускаетмакрос CLEAR(листинг см. вприложениях),который активизируетполе для вводапароля и очищаетего. Символы,набранные вданном полеотображаютсязвёздочками.Если парольнабран неправильно,то выводитсясоответствующеесообщение ифокус переходитк кнопке "Вводпароля".

В случаеже верноговвода паролямашина такжесообщает обэтом и происходитзагрузка формы"Финансы"

Какуже было отмеченовыше за этидействия отвечаетмакрос ПАРОЛЬ.

В форме"Финансы" приверном паролестановитсядоступна финансоваяинформацияфирм. Навигацияпо записямосуществляетсяпри помощи Полясо списком иКнопки "Следующаяфирма". При этомоказываютсязадействованнымимакросы НАЙТИ1,НАЙТИ_ДАЛЕЕ1и УСТАНОВИТЬ_ПОДПИСЬ_КНОПКЕ1(см. приложения).Выбор нужнойфирмы в полесо спискомпприводит кавтоматическомувыводу на экранфинансовыхсведений о ней(а точнее оцентральнойфирме) и изменениюподписи к кнопке"Следующаяфирма", нажатиеже кнопки приводитк поиску информациио филиалах.

Здесьтакже используетсятакой интерактивныйинструмент,как всплывающиеподсказки.

Принажатии Кнопки"К FORMSNAVIGATOR1.0"выполняетсямакрос К_FORMSNAVIGATOR_1.0иосуществляетсяпереход к главномуокну навигатора. Листинг макросасм. в приложениях.

Теперьвыбираем длязапуска форму«Сведения офирмах» и запускаемеё нажатиемкнопки. Я ужеуказывал намакрос, работающийздесь.(ДЛЯ_ГРУППЫ)Осуществляетсяпереход наформу «Фирма».Здесь используютсяследующиемакросы: НАЙТИ,НАЙТИ_ДАЛЕЕдля навигациипо записям;УСТАНОВИТЬ_ПОДПИСЬ_КНОПКЕдля изменениявнешнего видакнопки;К_FORMSNAVIGATOR_1_0для возвратак основномуокну навигатора;а также макросПОДРОБНЕЕ,который в зависимостиот того естьили нет флажка«Сведения орегистрации»выводит илискрывает поляс информациейо регистрациифирмы. Листингего в приложениях.


Автор:СлавниковДмитрий Васильевич


slavnikov_d@mail.ru


Руководствопользователя.

  1. Загрузитьбазу данныхАРМ FORMSNAVIGATOR1.0.

  2. После приглашенияк работе выбратьнеобходимуюформу путёмустановкисоответствующегопереключателяи нажать кнопку«Запуск».

  3. В форме «Фирма»навигация позаписям осуществляетсяследующимобразом:

  • с помощьюполя со спискомнаходятся центральныеотделенияфирм;

  • с помощьюкнопки «Следующая...» находятсяфилиалы (еслитаковые имеются).

  1. В форме «Фирма»при запускене отображаютсясведения орегистрации.Для того чтобыих просмотретьнеобходимопоставитьсоответствующийфлажок.

  2. Для входав форму финансынеобходимоввести пароль:

  • нажать накнопку «Вводпароля» (поледля ввода очиститсяи в нём будетустановленкурсор);

  • ввести пароль(для безопасностисимволы будутотображатьсязвёздочками);

  • нажать клавишуввод;

  • при ошибочномвводе пароляповторить вседействия.

  1. В форме «Финансы»навигация позаписям осуществляетсяаналогичноформе «Фирма»

  2. Для возвратав основноеокно FORMSNAVIGATORA1.0 из любойформы следуетнажать кнопку«К FORMSNAVIGATORA1.0».

  3. Кроме этоговсегда следуетчитать всплывающиеподсказки.

Желаем успешнойи плодотворнойработы в АРМFORMSNAVIGATORA 1.0.


Автор:СлавниковДмитрий Васильевич


slavnikov_d@mail.ru


Описания макросов.

В данной научнойработе былопримененомакросов. Причёмиз них дублируютсяиз-за спецификивыполняемыхфункций, а остальныене имеют аналогов.Начнём пожалуйс AUTOEXEC - макроса.(см. приложения) Его спецификазаключаетсяв том, что макросс таким именемвсегда запускаетсяв автоматическомрежиме призагрузке базыданных. Это егосвойство ипозволяет безвмешательствапользователявывести приглашениек работе и открытьглавное окноАРМ FORMSNAVIGATOR 1. 0.Во всяком случаетакая автоматизацияпроизводитдолжное впечатлениена определённуюгруппу (я такдумаю весьмабольшую) пользователей.Макрос AUTOEXECвесьма простпо структуре,посему и задерживатьсяна нём не будем.

Макрос ДЛЯ_ГРУППЫуже не так прост, он содержитусловие и ктому же используетбольшое количествокоманд. Условиепозволяетосуществитьвыбор пользователюнеобходимойдля загрузкиформы. Крометого хотелосьбы особенноотметить макрокомандуЗАДАТЬ ЗНАЧЕНИЕ. Она весьмауниверсальнаи позволяетв данном случаеосуществитьвывод на экрани скрытиеопределённыхэлементов(кнопка «Введитепароль» и поледля его ввода).В данном случаеиспользованыих свойствавывод на экран(Visible), которымс помощьюмакрокомандыЗАДАТЬ ЗНАЧЕНИЕприсваиваетсязначение либоИСТИНА, либоЛОЖЬ. Пожалуйодна из простейшихкоманд ПЕСОЧНЫЕЧАСЫ придаётработе приложения«фирменный»вид, если машинаслишком долгодумает. Этотмакрос «привязан»к событию нажатиекнопки «Запуск».

Далее рассмотриммакрос ПАРОЛЬ.Он также содержитусловие: сравниваютсяистинное значениепароля и парольвведённыйпользователем.Если условиевыполнено то, спрятав элементыввода пароля, открываемформу «Финансы»и выводим наэкран скрытыефинансовыесведения. Еслиже пользовательввёл парольс ошибкой, тоему предоставляетсяновая возможностьдля ввода пароля.Макрос запускаетсяпосле обновленияполя для вводапароля.

Из-за спецификиработы приложениядля функцииввода паролябыл также использованмакрос CLEAR, очищающий поледля ввода пароля.Макрос «привязан»к событию нажатиекнопки «Вводпароля».

Рассмотримтакже принципработы макросов, отвечающихза навигациюпо записям вформах: НАЙТИ(НАЙТИ1), НАЙТИ_ДАЛЕЕ(НАЙТИ_ДАЛЕЕ1).При выполненииданного макросафокус переходитна поле фирма,где и осуществляетсяпоиск. Главнейшаямакрокомандаздесь - это НАЙТИЗАПИСЬ. Заобразец поискапринимаетсязначение изполя со списком. Поиск осуществляетсяот первой записивниз. Затемфокус возвращаетсяк полю со списком. В принципепоследняякоманда работаетлишь для субъективнойпсихологиичеловека, .т.к. пользовательведь и не догадываетсякак работаетпрограмма, апосему еслион выбираетзначения изсписка, то фокусне должен «прыгать»по всей форме.Макрос начинаетработать послеобновленияполя со спискомфирм.

Макрос НАЙТИ_ДАЛЕЕ(НАЙТИ_ДАЛЕЕ1)на первый взглядне отличаетсяот предыдущего,однако изменениевсего в одномоперанде макрокомандыНАЙТИ ЗАПИСЬприводит ксовершенноиным результатам.Вся разницав операндепервое вхождение.Здесь поискосуществляетсяуже не с первой,а с текущейзаписи. Такимвот образомпроисходитпоиск сведенийо филиалах . Запуск макросапроисходитпосле нажатиякнопки "Следующая. . . ".

Макрос УСТАНОВИТЬПОДПИСЬ КНОПКЕ (УСТАНОВИТЬПОДПИСЬ КНОПКЕ1)состоит вообщеиз одной макрокомандыЗАДАТЬ ЗНАЧЕНИЕ. Но тем не меневесьма изящени делает оченькрасивую сточки зренияпользователяфункцию (да иполезную, ведьбез него кнопка"Следующая. . . " моглабы восприниматьсяв глазах пользователякак кнопка дляперехода кследующейзаписи!). ФункцииCaption присваиваетсязначение "Следующая" & [Forms]![Фирма]![пссфм],т. е. Следующая+ значение полясо списком.Макрос работаетпо свойствукнопка вверхдля кнопки«Следующая...» и при открытииформы.

Макрос ПОДРОБНЕЕпозволяетпользователюпростой установкойфлажка выводитьна экран (илисняв флажок,убирать с экрана)сведения орегистрациифирм. Это свойствовесьма полезно,т. к. позволяетубирать с экрананенужную наданный моментинформацию.Эта функциявыполняетсяс помощью условияи всё той жеуниверсальнойи весьма всемилюбимой командойЗАДАТЬ ЗНАЧЕНИЕ. Здесь опять-такимы используемдля операндаэлемент функциюVisible для примечанийформы, где инаходятся нашисведения орегистрации.Макрос «привязан»к событиямпосле обновленияфлажка и загрузкеформы «Фирма».

Макрос К_FORMSNAVIGATOR1_0используетсякак в форме«Фирма». Таки в форме «Финансы»для осуществлениявозврата косновному окнуFORMSNAVIGATOR1. 0. Егосостав оченьпрост. Такоймакрос думаюя осилит большаячасть студентов,а посему иостанавливатьсяна нём не будем.

Рассмотреввсе применяемыездесь макросыхотелось бысделать кое-какиевыводы:

  • Прежде всегомакросы не такуж сложны како них думают,а , значит, следуетсмело их применять;

  • макросы вполнеспособны (правдане всегда) заменитьнастоящеепрограммированиена VisualBasic

  • макросы в некоторыхслучаях могутдаже то на чтоне способенVisualBasic

  • зачастую однаи та же макрокомандаспособнаосуществлятьразличныефункции (например, командаЗАДАТЬ ЗНАЧЕНИЕ)

  • программированиев макрокомандахпозволяетлучше понятьвсю структуруБД, а тем самымсоздать весьмаудобное пользовательскоеприложение.


Автор:СлавниковДмитрий Васильевич


slavnikov_d@mail.ru

Листинги всехмакросов можнопросмотретьв приложениях.


Предполагается,что филиалызаносятся вбазу данныхпосле сведенийо центральнойфирме