Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 24
Текст из файла (страница 24)
Процедура Property Set присваивает значение свойству объекта. Процедура Property Let устанавливает значение свойства, не принадлежащего объекту.Для создания стандартного модуля или модуля класса необходимо выполнить следующие действия:• выбрать команду Модуль (Module) или Модуль класса (ClassModule) в меню Вставка (Insert) (рис. 3.9). При этом откроетсяредактор кода VBA с пустым окном модуля;• создать необходимые процедуры и описания;• сохранить модуль, нажав кнопку [Сохранить] (Save) на панели инструментов.
При этом откроется диалоговое окно Сохранение(Save), в которое нужно ввести имя нового модуля и нажать кнопку [ОК].После этого новый модуль появится в списке модулей окнабазы данных. Чтобы его открыть, можно нажать кнопку [Конструктор] (Design) окна базы данных или в режиме конструктораформы или отчета нажать кнопку [Программа] (Code) на панелиинструментов.Окно Object Browser позволяет просматривать все объекты, ихсвойства и методы, доступные для текущего проекта. Эти объектымогут быть встроенными объектами Access или VBA, а также объектами, которые созданы в приложении или входят во внешние биб-:__ІІІІІщи&р Борей : база данн(Д Открыть J§g Коиитаетор 'ід с о а д е ь j Y a a Т г[Н ; SB;iiS iiiiшщж.i-jшйИДНииМ ІІ И[ЩЙЦЩЩЩЦЩЩСоздание Формы в режиме конструктора ЩСоздание Формы с помощью мастераАнализ продажГлавная кнопочная формаЗаказыЗаказы клиентовЗаставкаКвартальные оборотый]а ТаблицаПод ХІР*Залрос3 ПодШгормаa noc'toa™а Про.
Страницаа сот, ЗМакржНаклейкидля клиентовОтчетыо продажахПодчиненнаядля квартальных оборотовПодчиненная Форма заказовШаМодуль классаТелефоны клиентовТипыТоварыРис. 3.9. Создание нового модуля123ДТ'НТГ Т'ИИ■A ccess1|~~~]3ifc j »JM e m b ers o f D o C rm Pjiv j D aia A cce ssP ag e simшD e faultW ebO ptionsттятшшB eepшI ® FormC ancelE ventЩForm a tC o nd itio nC lo semF o rm a tC o n d itio n si®F orm s\ ЩG roupLevel—*C opyO bjectD e le te O bjectJ g j я ® D o M enultemjg.Рис.
3.10. Окно просмотра объектовлиотеки, на которые имеются ссылки в текущем проекте. Вызватьокно просмотра объектов можно еще тремя способами:• нажать клавишу [F2];• нажать кнопку [Object Browser] на панели инструментов;®выбрать команду View, Object Browser.Окно Object Browser состоит из нескольких списков (рис. 3.10),которые обеспечивают трехуровневое представление информации.Список Проект/библиотека (Project/Library) в левом верхнемуглу окна содержит перечень всех библиотек и проектов, на которые имеются ссылки в данном проекте.
Как минимум он включаетв себя библиотеку Access, библиотеку VBA, библиотеку текущегопроекта.При выборе из списка одной из библиотек в нижнем, левомполе Classes отображается список следующего уровня — переченьвсех объектов, входящих в эту библиотеку. Например, если выбрать библиотеку Access, то в списке Classes можно увидеть многознакомых объектов. Выбрав один из них (например, DoCmd), вправом поле Members of можно увидеть все методы этого объекта.Если бы мы выбрали объект Form, то в правом поле отобразилисьбы все свойства и методы объекта Form.При этом в нижней части окна, которая называется Областьописания, отображается описание выбранного элемента.3.2.6. Инструментальные средства отладкиПомимо интеллектуального редактора текста профессиональная среда программирования должна содержать инструментальные средства отладки, которые призваны дать разработчику максимально ясное представление о том, как работает его программа.И уже искусство разработчика позволит, используя все имеющи124еся в его распоряжении средства, быстро выявить ошибки.
Наборсредств отладки в Access широк. Это и специальное меню Откладка (Debug), и во многом дублирующие его кнопки на панели инструментов, и специальные окна отладки.В табл. 3.3 представлено описание команд отладки, а на рис.3.11 показаны меню Отладка (Debug) и специальная панель инструментов Debug.Т а б л и ц а 3.3Назначение команд отладкиКомандаНазначениеКомпиляция (Compile)Компилирует все модули в текущей базеданныхШаг с заходом (Step Into)Исполняет очередную строку кода с заходом в процедурыШаг с обходом (Step Over) Выполняет остаток текущей процедуры иостанавливается в вызывающей программена следующей строке после вызова этойпроцедурыШаг с выходом (Step Out) Выполняет остаток текущей процедуры иостанавливается в вызывающей программена следующей строке после вызова этойпроцедурыЗапуск до курсора (Run to Выполняет все строки кода от текущейCursor)строки до строки, в которой установленкурсор, и останавливает выполнение передэтой строкойДобавление контрольногоОткрывает окно Добавление контрольногозначения (Add Watch)значенияИзменение контрольногозначения (Edit Watch)Открывает окно Изменение контрольногозначенияБыстрый просмотр (Quick Выводит в специальном окне текущееWatch)значение выражения в точке остановаУстановка/сброс точек ос Устанавливает/снимает точку останова натанова (Toggle Breakpoint) строку, в которой находится курсорСброс всех точек останова Снимает все точки останова, установленные в данном модулеУстановка следующегоУстанавливает очередную выполняемуюпредложения (Set Nextкоманду на строку, в которой находитсяStatement)курсорПоказ следующего предложе Отображает в окне редактора очереднуюния (Show Next Statement) команду для выполнения(Clear All Breakpoints)125BÉBЗ н M icro so ft V is u a l B asic - Б ор ей [d e sig n ]xAiIDat»AccessPagesосматривает все страницы да;сверяет правильность и х ст$|и не об х од имо а тм обновляет dРис.
3.11. Меню и панель инструментов Debug3.2.7. Управляющие конструкции языка VBAКак и во всех других языках программирования, в VBA имеются различные управляющие конструкции, позволяющие изменятьпорядок выполнения программы. Без использования управляющих конструкций будет происходить последовательное выполнение операторов языка программирования от первого до последнего.
Хотя в некоторых самых простых случаях этого и бывает достаточно, однако обычно все-таки требуется изменять порядоквыполнения операторов, либо пропуская выполнение некоторыхиз них, либо, наоборот, многократно повторяя. Оказывается, дляреализации любых алгоритмов достаточно иметь только два видаинструкций управления: ветвления и циклы.Ветвления. Управляющие конструкции ветвления позволяютпроверить некоторое условие, а затем в зависимости от результатов этой проверки выполнить ту или иную группу операторов. Дляорганизации ветвлений в VBA используются различные формыоператора ветвления If и оператор выбора Select Case.Простейшая, краткая форма оператора If используется сначала для проверки одного условия, а затем в зависимости от результата этой проверки либо для выполнения, либо для пропуска одного оператора или блока из нескольких операторов.
Краткая формаоператора ветвления If может иметь как однострочную, так и блочную форму. Запись в одну строку краткой формы If имеет видIf <условие> Then <оператор>В блочной форме краткое ветвление выглядит следующим образом:126If <условие> Then<оператор1><оператор2>End IfВ качестве условия можно использовать логическое выражение,возвращающее значения True (Истина) или False (Ложь), илилюбое арифметическое выражение.
Если используется арифметическое выражение, то нулевое значение этого выражения эквивалентно логическому значению False, а любое ненулевое выражение — значению True. В том случае, когда условие возвращает значение False, оператор или блок операторов, заключенных междуключевыми словами Then и End If и составляющих тело краткогооператора ветвления, не будет выполняться.Полная форма оператора If используется в тех случаях, когдаимеются два различных блока операторов и по результатам проверки условия нужно выполнить один из них. Такая форма If неможет записываться в одну строку и всегда имеет блочную формузаписи:If <условие> Then<блок0ператоров1>Else<блок0ператоров2>End IfЕсли условие истинно, выполняется первый блок операторов,заключенный между ключевыми словами Then и Else; в противном случае выполняется второй блок, заключенный между ключевыми словами Else и End If.Иногда приходится делать выбор одного действия из целой группы альтернативных действий на основе проверки нескольких различных условий.
Для этого можно использовать цепочку операторов ветвления If... Then... Elself:If <условие1> Then<блокОператоров1>Elself <условие2> Then<блокОператоров2>Elself <условиеЗ> Then<блокОператоровЗ>Elself <условиеЫ> Then<блокОператоровЫ>Else<блок0ператоров_Е1зе>End If127Цепочки операторов If...Then...ElseIf обладают большой гибкостью и позволяют решить все проблемы, однако если выбородной из нескольких возможностей все время основывается наразличных значениях одного и того же выражения, гораздо удобнее использовать специально предназначенный для этого оператор выбора Select Case, имеющий следующий синтаксис:Select Case <проверяемоеВыражение>Case <списокЗначений1><блокОператоров1>Case <списокЗначений2><блокОператоров2>Case <списокЗначенийЗ><6локОператоровЗ>Case Else<блок0ператоров_Е1зе>End SelectПроверяемое выражение вычисляется в начале работы оператора Select Case и может возвращать значение любого типа, например логическое, числовое или строковое.Список выражений содержит одно или несколько выражений,разделенных запятой.