Самоучитель Microsoft Access 2013



Download 16,15 Mb.
Pdf ko'rish
bet114/146
Sana15.11.2022
Hajmi16,15 Mb.
#866071
1   ...   110   111   112   113   114   115   116   117   ...   146
Bog'liq
Юрий Бекаревич, Нина Пушкина - Самоучитель Microsoft Access 2013 (2014)


Глава 9 
В режиме конструктора для выполнения макроса предназначена команда 
Выпол-
нить
(Run). Если макрос уже закрыт, то для его выполнения надо в области навига-
ции выбрать макрос и
в контекстном меню выбрать команду 
Выполнить 
(Run). 
Кроме того, для выполнения макроса можно использовать кнопку 
Выполнить 
макрос
(Run Macro) на вкладке ленты 
Работа с базами данных
(Database Tools) 
в группе 
Макрос 
(Macro). Таким образом, реализованная макросом задача может 
решаться по инициативе пользователя. 
Выполнение внедренного макроса происходит автоматически при наступлении со-
бытия, с которым он связан. 
Изолированный макрос, так же как внедренный, может быть связан с любым собы-
тием формы (отчета) или их элементов. Для этого нужно, вместо того чтобы вызы-
вать построитель для создания макроса, выбрать ранее созданный изолированный 
макрос из списка в строке свойства события. 
Для просмотра и редактирования существующего изолированного макроса надо 
выбрать его в области навигации и в контекстном меню нажать кнопку 
Конструк-
тор
(Design View). Для редактирования внедренного макроса нужно так же, как при 
его создании, воспользоваться кнопкой построителя в строке свойства события. 
Формирование макроса с помощью мыши 
Создание некоторых макрокоманд в макросе может быть выполнено путем перено-
са с помощью мыши объекта базы данных из области навигации в окно макроса. 
Макрокоманда по умолчанию создается со значениями аргументов, соответствую-
щими выбранному объекту. Например, при перетаскивании таблицы создается 
макрокоманда 
ОткрытьТаблицу 
(OpenTable), открывающая таблицу в режиме 
таблицы со значением 
Изменение
(Edit) для аргумента 
Режим
данных
(Data 
Mode). 
Возможно перемещение любых объектов, представленных в области навигации
базы данных. Соответственно перемещаемому объекту могут быть созданы макро-
команды 
ОткрытьТаблицу
(OpenTable), 
ОткрытьФорму
(OpenForm), 
Открыть-
Запрос
(OpenQuery), 
ОткрытьОтчет
(OpenReport), 
ОткрытьМодуль
(OpenModule) или 
ЗапускМакроса
(RunMacro). 
Использование в макросах ссылок на объекты 
В программах на языке макросов, как и на языке VBA, при обработке данных в базе 
необходимо уметь правильно ссылаться на эти данные. В Access определен ряд 
объектов, через которые предоставляется возможность получить доступ к данным 
базы. К таким объектам относятся формы и отчеты. Ссылки на формы, отчеты, их 
элементы управления и свойства формируются по определенным правилам. По-
строитель выражений позволяет сформировать такие ссылки простым выбором 
объекта, элемента управления и свойства в списках. Ко времени выполнения в мак-
росах выражения со ссылкой на объект этот объект должен быть открыт. 


Разработка приложений с использованием макросов 
369 
Ссылки на объекты и их элементы управления 
Ссылаться на объекты можно по имени, но нужно учесть, что в Access объекты 
объединяются в 
семейства
. Формы объединены в семейство 
Формы
(Forms), отче-
ты — в семейство 
Отчеты
(Reports). Поэтому ссылка на объект включает имя
семейства и — через восклицательный знак — имя объекта. Если имя включает 
пробелы или специальные символы, его надо брать в квадратные скобки. Напри-
мер, для ссылки на форму надо записать: 
Forms![ДОГОВОРЫ С ПОКУПАТЕЛЯМИ]. 
В ссылке на элемент управления вслед за именем объекта через восклицательный 
знак записывается имя элемента управления, заключенное в квадратные скобки. 
Например, ссылку на поле в форме надо записать так: 
Forms![ДОГОВОРЫ С ПОКУПАТЕЛЯМИ]![СУММА_ДОГ] 
Ссылку на элемент управления 
Надпись
(Caption) с именем 
Цена_Надпись
надо 
записать так: 
Forms![ДОГОВОРЫ С ПОКУПАТЕЛЯМИ]![Цена_Надпись] 
Обратите внимание, что имя этого элемента управления не совпадает с подписью, 
выводимой в форме. Имя записывается в свойстве элемента управления на вкладке 
Другие
(Other) в строке 
Имя
(Name) (рис. 9.3). В форме ДОГОВОРЫ С ПОКУ-
ПАТЕЛЯМИ элемент управления 
— 
Надпись
(Caption) с именем 
Цена_ 
Надпись
— отображается как 
ЦЕНА
. Это значение записано на вкладке 
Макет
(Format) в свойстве 
Подпись
. Проверяйте имя элемента управления в окне свойств, 
оно может по умолчанию принимать и другие значения, например, 
Надпись15

Рис. 9.3. 
Окно свойств элемента управления 
Надпись
Ссылки на свойство объекта 
В ссылке на свойство объекта вслед за именем объекта через точку записывается 
имя свойства. Перечень свойств формы или отчета можно посмотреть, открыв объ-
ект в режиме конструктора или макета и вызвав окно его свойств. Многие свойства 


370 
Глава 9 
названы несколькими словами с пробелами между ними. Истинное имя свойства 
таких пробелов не имеет, поэтому в ссылках оно записывается без них. Например, 
имя свойства 
Область
выделения
(Record Selectors) должно записываться так:
ОбластьВыделения
(RecordSelectors), имя свойства 
Полосы
прокрутки
(Scroll 
Bars) — 
ПолосыПрокрутки
(ScrollBars). 
Ссылку на это свойство формы надо записать так: 
Forms![ДОГОВОРЫ С ПОКУПАТЕЛЯМИ].ScrollBars 
В русифицированной версии Access в строках окна свойств указаны русские имена 
свойств. В ссылках следует использовать английский вариант имени свойства. 
Ссылки на свойство элемента управления 
Для записи ссылки на свойство элемента управления нужно дополнить ссылку на 
элемент управления через точку именем свойства. Различные типы элементов 
управления имеют разные свойства. 
Например, ссылку на свойство
ВыводНаЭкран
(английский вариант имени Visible) 
элемента управления с именем 
Цена_Надпись
, которое соответствует строке 
Вы-
вод на экран
(Visible) на вкладке 
Макет
(Format) (рис. 9.4), надо записать так: 
Forms![ДОГОВОРЫ С ПОКУПАТЕЛЯМИ]![Цена_Надпись].Visible 
Рис. 9.4. 
Отображение свойства Visible в окне свойств 
В общем виде правило записи ссылок может быть сформулировано следующим 
образом: оператор 
!
(восклицательный знак) указывает, что следующий за ним 
элемент является элементом, определяемым пользователем. Например, оператор 
!
ставится перед ссылкой на открытую форму, на открытый отчет или элемент 
управления в открытой форме или отчете. Оператор 
.
(точка) обычно указывает, 
что следующий за ним элемент определен в Access. Например, оператор 
.
(точка) 
ставится перед ссылкой на свойства форм, отчетов и элементов управления. 
Ссылка на подчиненную форму или отчет 
Подчиненная форма (или отчет) рассматриваются в Access как элемент управления 
формы (отчета). Форма после внедрения содержится в элементе управления 
Под-
чиненная
форма
(Subform), отчет — в элементе управления 
Подчиненный
отчет


Разработка приложений с использованием макросов 
371 
(Subreport). Поэтому ссылка на подчиненную форму (или отчет) записывается как 
ссылка на элемент управления формы (отчета). 
Элемент управления 
Подчиненная
форма/отчет
(Subform/Subreport) имеет специ-
альное свойство 
Форма 
(Form) или, соответственно, 
Отчет 
(Report). Это свойство 
позволяет ссылаться на элементы управления подчиненных объектов и их свойства. 
Полная ссылка на свойство элемента управления в подчиненной форме имеет 
в общем виде следующую структуру: 
Forms![
Имя_формы
]![
Элемент_Подчиненная_форма
].Form![
Элемент_подчиненной 
формы
].
Имя_свойства
Заметим, что при ссылках на элемент управления в подчиненной форме или подчи-
ненном отчете не обязательно указывать свойство 
Form
или 
Report

Далее приведена ссылка на элемент управления — поле 
СУММА_ПОСТ
в подчиненной 
форме ПЛАН ПОСТАВОК, встроенной в форму ДОГОВОРЫ С ПОКУПАТЕ-
ЛЯМИ: 
Forms![ДОГОВОРЫ С ПОКУПАТЕЛЯМИ]![ПЛАН ПОСТАВОК]![СУММА_ПОСТ] 
Следует заметить, что не всегда нужно в ссылке использовать полное имя элемента 
управления. Так, для расчета стоимости товара в текущей записи подчиненной 
формы ПЛАН ПОСТАВОК и его сохранения в поле 
СУММА_ПОСТ
достаточно запи-
сать в аргументах макрокоманды 
ЗадатьЗначение 
(SetValue): в строке 
Элемент
(Item) имя 
[СУММА_ПОСТ]
,
а в строке 
Выражение
(Expression) — 
[КОЛ_ПОСТ]*[ЦЕНА]
(рис. 9.5). 
Рис. 9.5. 
Ссылки на имена элементов управления текущей формы ПЛАН ПОСТАВОК 
Если макрос вызывается при наступлении некоторого события, например, при об-
новлении пользователем полей 
КОЛ_ПОСТ
или 
ЦЕНА
в форме ПЛАН ПОСТАВОК, то 
при передаче управления в макрос текущим объектом остается эта форма. Поэтому 
в макросе для ссылок достаточно использовать только имена полей. 
Создание ссылок построителем выражений 
Ссылки на объекты, элементы управления и свойства удобно создавать с помощью 
построителя выражений. 
Чтобы вызвать построитель выражений, надо выбрать в окне макроса строку аргу-
мента макрокоманды, в которую требуется ввести выражение, и нажать появив-
шуюся кнопку построителя 

В открывшемся окне 
Построитель выражений
(Expression Builder) в поле записи 
выражений надо сформировать выражение. Для этого в левом поле в нижней поло-


372 
Глава 9 
вине окна построителя раскройте двойным щелчком кнопки мыши папку, содер-
жащую объекты. Затем выберите папку необходимого объекта. В среднем поле вы-
берите нужный элемент управления объекта, а в правом — 
Значение
(Value), если 
формируется ссылка на элемент управления, или нужное свойство, и двойным 
щелчком вставьте ссылку в выражение. 
Закончив создание выражения, нажмите кнопку 
OK

Access скопирует созданное выражение в ту строку, из которой был вызван по-
строитель выражений. 
Если строка аргумента, из которой вызывается построитель выражений, уже со-
держит выражение, то оно автоматически копируется в поле выражений, где может 
быть отредактировано. 
Заметим, если нужный объект или свойство не появляется в нижней части окна по-
строителя выражений, это означает, что их нельзя использовать в том контексте, 
в котором был вызван построитель выражений. 
Вложенные макросы 
Access предоставляет возможность создавать в макросе вложенные макросы. Вло-
женный макрос имеет имя и может содержать любые макрокоманды. Работать
с объединенными макросами часто оказывается удобнее, чем с несколькими от-
дельными макросами. В области навигации макрос с вложенными макросами ото-
бражается как один объект. Целесообразно объединять несколько макросов в од-
ном, если они связаны с решением одной задачи или используются при работе 
с одним объектом. 
Вызывается вложенный макрос с помощью макрокоманды 
ЗапускМакроса
(RunMacro) или в ответ на событие. Для ссылки на вложенный макрос используется 
следующий синтаксис: 
ИмяГруппыМакросов
.
ИмяВложенногоМакроса
Для включения в макрос вложенного макроса нужно выбрать соответствующую 
макрокоманду из раскрывающегося списка в поле 
Добавить новую макрокоманду
(Add New Action) или перетащить 
Вложенный макрос
(Submacro) в нужное место 
из раздела 
Управление
(Program Flow) каталога макрокоманд. В макросе отобра-
зится блок (рис. 9.6), в котором по умолчанию вложенному макросу присвоено имя 
Sub1
, предоставляется возможность добавления макрокоманд и вставлен признак 
конца вложенного макроса. 
Рис. 9.6. 
Блок пустого вложенного макроса 


Разработка приложений с использованием макросов 
373 
Рассмотрим, как с помощью вложенных макросов, которые запускаются при ини-
циировании пользователем событий в одной форме, можно отфильтровать записи 
в другой форме. 
Задача 
Пусть при просмотре данных о договоре необходимо иметь возможность отобра-
жать информацию о накладных, по которым отгружался товар в соответствии с до-
говором. 
Для решения задачи используем формы ДОГОВОРЫ С ПОКУПАТЕЛЯМИ и 
НАКЛАДНАЯ, созданные ранее 
(см. главы 5 и 6)
. Обе формы имеют поле с номе-
ром договора 
НОМ_ДОГ
. При работе с формой ДОГОВОРЫ С ПОКУПАТЕЛЯМИ 
должна открываться форма НАКЛАДНАЯ, в которой представлены только соот-
ветствующие просматриваемому договору накладные. 
Создайте изолированный макрос с именем 
Накладные
, включающий вложенные 
макросы 
М1
и 
М2
. Пусть макрос 
М1
при открытии формы ДОГОВОРЫ С ПО-
КУПАТЕЛЯМИ, открывает форму НАКЛАДНАЯ. Макрос 
М2
фильтрует записи
с накладными по значению поля 
НОМ_ДОГ
, взятому из текущей записи формы 
ДОГОВОРЫ С ПОКУПАТЕЛЯМИ. Макрос 
М2
должен выполняться, когда поль-
зователь, работая в форме с договорами, инициирует событие 
Двойное
нажатие
кнопки
(On Dbl Click) или 
Вход
(On Enter) для поля с номером договора. Если не-
обходимо отображать накладные только при переходе к другому договору, свяжите 
макрос 
М2
с событием формы 
Текущая запись
(On Current). Создание группы по-
зволяет объединить макросы, предназначенные для решения одной задачи, и упро-
стить сопровождение приложения. 
1.
Для создания изолированного макроса выполните команду 
Макрос
(Macro) на 
вкладке ленты 
Создание
(Create) в группе 
Макросы и код
(Macros & Code). 
2.
В открывшемся окне макроса с помощью макрокоманды управления 
Вложен-
ный макрос
(Submacro) создайте вложенные макросы с именами 
М1
и 
М2 
(рис. 9.7). 
3.
Макрос 
М1
дополните макрокомандой 
ОткрытьФорму
(OpenForm) НАКЛАД-
НАЯ. 
4.
Макрос 
М2 
дополните: 

макрокомандой 
ВыделитьОбъект
(SelectObject) НАКЛАДНАЯ, которая сде-
лает объект текущим и позволит выполнять для него макрокоманды; 

макрокомандой 
ПоказатьВсеЗаписи
(ShowAllRecords), которая отменит 
фильтр, примененный ранее к форме; 

макрокомандой 
ПрименитьФильтр
(ApplyFilter), которая отфильтрует запи-
си формы НАКЛАДНАЯ в соответствии с условием отбора. 
5.
Сохраните группу макросов под именем 
Накладные
. Это имя будет выводиться 
в списке макросов в области навигации. 


374 
Download 16,15 Mb.

Do'stlaringiz bilan baham:
1   ...   110   111   112   113   114   115   116   117   ...   146




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish