.RU

Использование модулей в MS Access - Практическое выполнение заданий в ms access

^

Использование модулей в MS Access


Теперь, когда у вас уже есть небольшой опыт создания макроса, рассмотрим пример использования модуля в MS Access. Для создания модулей необходимо иметь первоначальные знания по языку программирования Visual Basic. Прежде чем приступить к созданию модуля, рассмотрим несколько ключевых понятий. В MS Access существуют два основных типа модулей: модули класса и стандартные модули. Каждая процедура в модуле может быть либо процедурой-функцией Function, либо процедурой-подпрограммой Sub.
Модули класса. Модули форм и модули отчетов являются модулями класса, связанными с определенной формой или отчетом. Они часто содержат процедуры обработки событий, запускаемые в ответ на событие в форме или отчете. Процедуры обработки событий используются для управления поведением формы или отчета и их откликом на события, такие, как нажатие кнопки.
При создании первой процедуры обработки события для формы или отчета автоматически создается связанный с ней модуль формы или отчета. Для просмотра модуля для формы или отчета достаточно нажать кнопку «Программа» на панели инструментов в режиме конструктора.
В процедурах модулей форм и отчетов могут содержаться вызовы процедур, добавленных в стандартные модули.
Стандартные модули. В стандартных модулях содержатся общие процедуры, не связанные ни с каким объектом, а также часто используемые процедуры, которые могут быть запущены из любого окна базы данных.
Для просмотра списка стандартных модулей базы данных щелкните Модули в списке Объекты в окне базы данных. Формы, отчеты и стандартные модули выводятся также в окне просмотра объектов.
^

Процедуры: общие сведения


В языке Visual Basic замкнутыми программными единицами являются процедуры. Процедура содержит набор инструкций и методов, с помощью которых выполняются действия или рассчитывается значение. Например, в следующей процедуре обработки события метод OpenForm открывает форму «Заказы»:

Private Sub ОткрытиеФормыЗаказы_Сlick()


DoCmd.OpenForm «Заказы»


End Sub


Существуют процедуры двух типов: процедура-подпрограмма Sub и процедура-функция Function.
Процедура-подпрограмма Sub, аналогично инструкциям Visual Basic, выполняет действие или набор действий, но не возвращает значение. Пользователь имеет возможность создавать процедуры Sub самостоятельно или использовать процедуры обработки событий, определенные в Microsoft Access.
Каждая форма или отчет в базе данных имеют встроенный модуль формы или модуль отчета, содержащий встроенные процедуры обработки событий, которые выполняются в ответ на события, возникающие в форме или отчете и в элементах управления в форме или отчете. После того как Microsoft Access определит, что событие возникло в форме, отчете или в элементе управления, автоматически запускается процедура обработки события, имя которой образуется как комбинация имен объекта и события. Например, процедура обработки события позволяет открыть другую форму при нажатии кнопки в форме.
Примечание. При создании объекта с помощью мастера часто автоматически создаются процедуры обработки событий для данного объекта. Для того чтобы понять, как работают процедуры, полезно ознакомиться с такими процедурами, просмотрев их в окне редактора Visual Basic.
Процедура-функция Function (часто такие процедуры называют просто функциями) возвращает значение, например, полученное в результате расчетов. Visual Basic включает ряд встроенных функций; например, функция Now возвращает текущее значение даты и времени. Выражения, содержащие функции, широко используются в Microsoft Access, например, в аргументах инструкций или методах Visual Basic, при указании значений свойств и при определении условий в запросах или фильтрах. В дополнение к встроенным функциям пользователь имеет возможность самостоятельно создавать функции, которые называют специальными или пользовательскими функциями.
Ниже приводится пример процедуры Function с именем «НачалоСледующегоМесяца», которая возвращает дату первого дня следующего месяца:

Function НачалоСледующегоМесяца()


НачалоСледующегоМесяца=DateSerial(Yеаг(Now), Month(Now) +1,1)


End Function


Данная функция состоит из единственной инструкции присваивания, в которой результат выражения (стоящего справа от знака равенства) присваивается функции «НачалоСледующегоМесяца» (имя которой стоит слева от знака равенства). Результат рассчитывается с помощью встроенных функций Visual Basic DateSerial, Year, Now и Month.
После создания функции ее можно использовать в Microsoft Access в любых выражениях. Например, чтобы сделать дату первого дня следующего месяца значением, которое поле получает по умолчанию, следует в окне свойств определить свойство этого поля Значение по умолчанию (DefaultValue) с помощью следующего выражения:

=НачалоСледующегоМесяца().


Примечание. Для того чтобы использовать функцию в качестве значения свойства, ее необходимо поместить в модуль формы или отчета или в стандартный модуль. Нельзя использовать в виде значения свойства формы или отчета функцию в модуле класса, не связанном с формой или отчетом.
Процедуры Sub и Function могут принимать аргументы.
Создание пользовательских процедур Visual Basic для приложений. Используя в базе данных процедуры Visual Basic, можно управлять взаимодействием таблиц, форм, отчетов и запросов этой базы данных. Существует несколько типов процедур. Можно создать процедуру обработки события, добавив ее код в предопределенные шаблоны в модуле формы или модуле отчета. Можно также создавать собственные процедуры Function и процедуры Sub в стандартных модулях или в модулях класса (которые содержат модули форм и отчетов).
Процедуры, содержащиеся в стандартном модуле или модуле класса, могут быть вызваны из выражений, из других процедур, из процедур обработки событий, из процедур в других стандартных модулях или из макросов. Процедуры обработки событий вызываются автоматически в ответ на события (например, щелчок мыши), возникающие в форме, отчете или элементе управления.
Создание пользовательской функции. Для создания пользовательской функции откройте модуль. Чтобы открыть новый стандартный модуль, щелкните в окне базы данных ярлык Модули в списке Объекты, а затем нажмите кнопку «Создать» на панели инструментов окна базы данных. Для того чтобы открыть существующий стандартный модуль, щелкните ярлык Модули в списке Объекты, выберите модуль, который требуется открыть, а затем нажмите кнопку «Конструктор». Чтобы открыть модуль формы или модуль отчета, откройте форму или отчет в режиме конструктора и нажмите кнопку «Программа» на панели инструментов.
Чтобы открыть новый модуль класса, не связанный с формой или отчетом, выберите команду Class Module в меню Insert. Для того чтобы открыть существующий модуль класса, щелкните ярлык Модули в списке Объекты, выберите модуль, который требуется открыть, а затем нажмите кнопку «Конструктор» на панели инструментов окна базы данных.
Объявите функцию, введя инструкцию Function. Введите имя функции, а следом все аргументы функции в круглых скобках. Например, следующая инструкция описания функции IsLoaded указывает строковый аргумент strFormName:

^ Function IsLoaded(strFormName As String) As Boolean


Добавьте программу Visual Basic, выполняющую операции или вычисления, которые должна выполнять функция.
Создание специальной процедуры Sub. Для создания специальной процедуры откройте модуль. Объявите процедуру, введя инструкцию Sub. Введите имя процедуры, а следом за ним все аргументы в круглых скобках. Например, следующая инструкция описания процедуры Sub с именем ShowEvent указывает строковый аргумент EventName:

^ Sub ShowEvent(EventName As String)


Добавьте программу на языке Visual Basic, выполняющую операции, которые должна выполнять процедура.

Создание процедуры обработки события.

В Microsoft Access можно легко создать процедуру обработки событий. При указании для свойства события формы, отчета или элемента управления значения «Процедура обработки события» Microsoft Access создает заготовку процедуры обработки события. Пользователю остается только добавить программу, которую требуется выполнять в ответ на конкретное событие формы, отчета или элемента управления. Например, можно запустить программу при нажатии пользователем кнопки или при изменении данных.
Для создания процедуры обработки события сделайте следующее:

  1. Откройте форму или отчет в режиме конструктора формы или режиме конструктора отчета. Выведите на экран окно свойств формы, отчета либо раздела или элемента управления в форме или отчете. Перейдите на вкладку События и выберите свойство события, в ответ на которое должна выполняться процедура. Например, для того чтобы открыть процедуру обработки события «Изменение» (Change), выберите свойство Изменение (OnChange).

  2. Нажмите кнопку построителя рядом с ячейкой свойства, чтобы открыть диалоговое окно Построитель. Дважды щелкните элемент Программы, чтобы отобразить инструкции Sub и End Sub в модуле формы или модуле отчета. Эти инструкции описывают (определяют) процедуру обработки события. Microsoft Access автоматически описывает в модуле формы или отчета процедуры обработки события для каждого объекта и события с использованием ключевого слова Private, указывающим, что доступ к этой процедуре возможен только из других процедур в том же модуле.

  3. Добавьте в процедуру программу, которая должна выполняться в ответ на событие. Например, для подачи звукового сигнала через динамик компьютера при изменении данных в поле «Название» включите инструкцию Веер в процедуру обработки события Haзвание_Change:

Private Sub Haзвание _Change()


Beep


End Sub


Процедура обработки события будет выполняться каждый раз при возникновении этого события для объекта.
Разработка модуля обработки события нажатия кнопок. Создайте модуль, обрабатывающий события нажатия двух кнопок на форме Форма_с_кнопкой. Кнопка «Мальчики» включает фильтр для отображения из таблицы Учащиеся в форме только мальчиков, а кнопка «Девочки» включает фильтр для отображения из таблицы Учащиеся в форме только девочек.
Сначала сохраним описанный ранее Макрос1, позволяющий просмотреть записи об учащихся женского пола в виде модуля. Для этого, открыв в окне конструктора Макрос!, выберем в меню Файл команду Сохранить как, а затем в диалоговом окне сохранения укажем на сохранение процедуры обработки события нажатия кнопки из макроса в виде модуля под именем Модуль!. Затем подтвердим преобразование макроса в модуль, включив добавление примечаний и процедур обработки ошибок и щелкнув кнопку «Преобразовать». После выполнения преобразования макроса в модуль на экран будет выведено сообщение об окончании преобразования, а затем раскроется окно Microsoft Visual Basic с текстом данного модуля, как показано на рис. 3.31.

Рис. 3.31. Окно Microsoft Visual Basic с текстом модуля
Как видно из этого рисунка, редактор Visual Basic представляет собой среду разработки, предназначенную для создания и редактирования программ на языке Visual Basic для приложений (VBA), содержащихся в файлах, создаваемых в приложениях Microsoft Office, включая базы данных Microsoft Access и проекты Microsoft Access. Редактор включает в себя окно проекта, окно свойств, окно просмотра объектов и окно программы, а также средства отладки. Используя команды в меню View (Вид), можно открыть соответствующие окна.
Изучив текст модуля, вы увидите, что в нем в виде процедуры Sub описаны действия: открыть таблицу Учащиеся, открыть для нее форму и задать фильтр отбора данных по условию [Пол]Тrue.
Выбрав в списке объектов Формы, откройте форму Форма_с_кнопкой в режиме конструктора, добавьте кнопку и задайте ей надпись «Мальчики». Вызвав контекстное меню для созданной кнопки, выберите команду Обработка событий. В окне Построитель выберите вариант Программы и щелкните «ОК». После этого в окне Visual Basic откроется окно модуля. Запишите в нем процедуру обработки щелчка этой кнопки, указав в качестве условия отбора данных [Пол]=Тrue.

Private Sub Кнопка10_Сlick()


'Открыть таблицу


DoCmd.OpenTable «Учащиеся», acNormal, acEdit


'Выделить объект - таблицу Учащиеся


DoCmd.SelectObject acTable, «Учащиеся», True


'Открыть форму Форма1


'DoCmd.OpenForm «Форма1», acNormal, "", "",, acNormal


DoCmd.OpenForm «Форма_с_кнопкой», acNormal, "", "", ,acNormal


DoCmd.ApplyFilter "", «[Учащиеся]![Пол]=Тгие»


End Sub


Закройте окно Visual Basic, сохранив измененную форму. Открыв форму и щелкая кнопки «Мальчики» или «Девочки», просмотрите отфильтрованные записи базы данных (только мальчиков или только девочек).
2010-07-19 18:44 Читать похожую статью
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • Контрольная работа
  • © Помощь студентам
    Образовательные документы для студентов.