Начальные сведения о программировании в Access

В начале работы над базой данных обычно создаются определенные объекты, такие как таблицы, формы и отчеты. В дальнейшем возникает необходимость добавить в базу программируемые возможности, чтобы автоматизировать некоторые процедуры и связать воедино созданные объекты базы данных. В этой статье дается общее представление о средствах программирования в Microsoft Office Access 2007 и указываются ресурсы, где можно получить дополнительные сведения о программировании.

В этой статье

Что такое программирование

Что лучше использовать — макросы или программы VBA

Выполнение стандартных задач по программированию с использованием создание кнопок

Общее представление о макросах

Общее представление о языке VBA

Преобразование макросов в программы VBA

Инструкции по работе со справочной системой

Что такое программирование

В Office Access 2007 под программированием подразумевается добавление в базу данных функциональных возможностей с использованием макросов Access или программы на языке Visual Basic for Applications (VBA). Например, предположим, что созданы форма и отчет и нужно добавить в форму кнопку, при нажатии которой открывается этот отчет. В данном случае программирование означает создание макроса или процедуры VBA с последующей настройкой свойство событияOnClick данной кнопки таким образом, чтобы при ее нажатии начиналось выполнение макроса или процедуры. Для простой операции, такой как открытие отчета, все требуемые действия можно выполнить в мастере создания кнопок или отключить этот мастер и написать программу самому.

Примечание : Во многих программах Microsoft Office термин «макрос» означает программу, написанную на языке VBA. Это может ввести пользователей Access в заблуждение, поскольку в Access термин «макрос» относится к именованной последовательности макрокоманд, которую можно создать с помощью построителя макросов. Макрокоманды Access — это лишь поднабор команд, доступных в VBA. Построитель макросов предоставляет более структурированный интерфейс, чем редактор Visual Basic, позволяя добавлять программные возможности для объектов и элементов управления, не зная языка VBA. Следует помнить, что в статьях справки Access макросы Access называются макросами. Соответственно, программа на языке VBA означает VBA, программу, функцию или процедуру. Программы VBA содержатся в модулях классов (которые являются частью отдельных форм или отчетов и содержат, как правило, программы только для этих объектов) и в модулях (которые не связаны с конкретными объектами и обычно содержат «глобальные» программы, доступные в рамках всей базы данных).

Объекты (такие как формы и отчеты) и элементы управления (такие как кнопки и текстовые поля) имеют широкий набор свойств событий, с которыми можно связать макросы или процедуры. Каждое свойство события связано с определенным событием, например щелчком мыши, открытием формы или изменением данных в текстовом поле. События также могут быть инициированы факторами, внешними по отношению к Access, например системными событиями, а также макросами и процедурами, связанными с другими событиями. Теоретически можно создать очень сложную базу данных, добавив многочисленные макросы или процедуры для нескольких свойств событий во многих объектах, однако в большинстве случаев нужных результатов можно достичь с помощью весьма небольшого числа программ.

В начало страницы

Что лучше использовать — макросы или программы VBA

Решение о том, какое средство программирования следует использовать — макросы или программы VBA — должно приниматься с учетом двух факторов: безопасности и функциональности. Требования к безопасности обусловлены тем, что на языке VBA можно создать программу, которая способна снизить уровень защиты данных или повредить файлы на компьютере. При работе с базой данных, созданной другим человеком, программы VBA допустимо использовать только в том случае, если база данных получена из надежного источника. Если создаваемая база будет использоваться другими лицами, следует избегать применения программных средств, которые требуют предоставления базе данных статуса надежного источника. Общие методики преодоления таких требований излагаются ниже в данном разделе.

Дополнительные сведения о включении и отключении потенциально небезопасного содержимого см. в статье Включение и отключение макросов в документах Office (как уже упоминалось, в большинстве остальных программ Microsoft Office под термином «макрос» понимается программа на языке VBA, поэтому важно не путать этот термин с макросами Access).

Чтобы обеспечить безопасность своей базы данных, следует по возможности стараться применять макросы, прибегая к программированию на языке VBA только в тех случаях, когда нужные операции невозможно выполнить с использованием макрокоманд. Более того, рекомендуется использовать только такие макрокоманды, для выполнения которых не требуется предоставлять базе данных статус надежной. Подобное ограничение при применении макрокоманд позволяет пользователям быть уверенными, что база данных не содержит программ, способных повредить данные или другие файлы на компьютерах.

Частично для повышения популярности макросов в Office Access 2007 включено много новых макрокоманд, с помощью которых можно создавать более мощные макросы, чем в предыдущих версиях Access. Например, теперь в макрокомандах доступно создание и использование глобальных временных переменных. Новые макрокоманды обработки ошибок значительно упростили выполнение этой процедуры. В более ранних версиях Access подобные возможности доступны только в VBA. Кроме того, в Access 2007 можно внедрить макрос непосредственно в свойство события объекта или элемента управления. Внедренный макрос становится частью объекта или элемента управления и переносится при перемещении и копировании таких объектов. В более ранних версиях Access макросы представляли собой отдельные объекты, что порой затрудняло обслуживание базы данных.

При добавлении программных возможностей в объект или элемент управления рекомендуется использовать следующие ниже варианты в указанном порядке:

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

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

  3. Процедура VBA

При построении макроса можно переключаться между коротким списком макрокоманд, которые не требуют предоставления базе данных статуса надежной для ее выполнения, и списком всех доступных макрокоманд, для чего нужно нажать кнопку Показать все действия в построителе макросов. При нажатии кнопки Показать все действия будет также выведен полный список аргументов для макрокоманды RunCommand. Дополнительные сведения о построении макросов см. в разделе Общее представление о макросах или по ссылкам, представленным в разделе См. также.

Применение макросов облегчает выполнение многих задач по программированию, таких как открытие и закрытие форм, а также выполнение отчетов. С их помощью можно просто и быстро связать созданные объекты базы данных, поскольку практически не нужно запоминать правила синтаксиса. аргумент, доступные для каждой из макрокоманд, отображаются в окне построителя макросов.

Помимо случаев, когда применение макросов обусловлено повышенным уровнем безопасности и удобством в работе, их необходимо использовать для выполнения следующих задач:

  • Назначение клавише макрокоманды или набора макрокоманд. Для выполнения этой задачи требуется создать группу макрокоманд с именем AutoKeys.

  • Выполнение макрокоманды или последовательности макрокоманд при первом открытии базы данных. Для выполнения этой задачи требуется создать группу макрокоманд с именем AutoExec.

    Примечание :  Макрос AutoExec выполняется раньше других макросов или программ VBA, даже если в диалоговом окне Параметры Access указана стартовая форма и для события этой формы OnOpen или OnLoad назначен макрос или программа VBA.

Программы на языке VBA вместо макросов следует использовать для выполнения следующих задач:

  • Использование встроенных функций или создание собственных функций.     В Access включено множество встроенных функций, например функция IPmt, которая рассчитывает проценты по платежам. Встроенные функции позволяют выполнять вычисления, не прибегая к разработке сложных выражение. С помощью программ VBA пользователи могут создавать собственные функции как для решения задач, выходящих за рамки возможностей встроенных функций, так и для замены сложных выражений. Кроме того, пользовательские функции можно использовать в выражениях для выполнения общих операций над несколькими объектами.

  • Создание и обработка объектов.     В большинстве случаев удобнее создавать или изменять объект в режимеКонструктор для этого объекта. Однако в некоторых ситуациях может возникнуть необходимость изменить определение объекта в программе. Средства VBA позволяют выполнять обработку всех объектов в базе данных, а также самой базы данных.

  • Выполнение системных макрокоманд.     Макрокоманда RunApp, включенная в макрос, позволяет выполнить другую программу (например, Microsoft Office Excel 2007) в оболочке Access, однако возможности макросов при работе вне Access ограничены. С помощью программ VBA можно проверить наличие файла на компьютере, воспользоваться возможностями автоматизация или динамический обмен данными (DDE) для обмена данными с другими программами, созданными на платформе Microsoft Windows, такими как Office Excel 2007, а также вызвать функцию Библиотека динамической компоновки (DLL) Windows.

  • Последовательная обработка записей.    С помощью языка VBA можно последовательно обработать набор записей, выполняя нужные операции с каждой из записей. Напротив, в макросах обработка выполняется в отношении всего набора данных одновременно.

Если программа на языке VBA используется в базе данных, предназначенной для передачи другим пользователям, следует выполнить упаковку и подпись этой базы данных, чтобы пользователи были уверены, что эта программа получена из надежного источника. Дополнительные сведения об упаковке и подписи баз данных см. в статье Обеспечение безопасности баз данных в Access 2007.

В начало страницы

Выполнение стандартных задач по программированию с использованием создание кнопок

При добавлении в форму кнопки можно воспользоваться мастером создания кнопок, чтобы начать создание программы для этой кнопки. Этот мастер руководит процедурой создания кнопки, предназначенной для выполнения конкретной задачи. В файле Office Access 2007 (ACCDB-файле) мастер создает макрос, который внедряется в свойство OnClick соответствующей кнопки. В файле MDB или ADP мастером создается программа на языке VBA, поскольку в этих форматах файлов внедренные макросы недоступны. В любом случае полученный в итоге макрос (или программу VBA) впоследствии можно изменить в соответствии со своими потребностями.

  1. Нажмите кнопку Microsoft Office Изображение кнопки Office , а затем выберите команду Открыть.

  2. В диалоговом окне Открыть выберите и откройте нужную базу данных.

  3. В области переходов щелкните правой кнопкой мыши форму, в которую нужно добавить кнопку, и выберите команду Конструктор.

  4. Убедитесь, что на вкладке Конструктор в группе Элементы управления установлен флажок Использовать мастер Изображение кнопки .

    Значок кнопки

  5. На вкладке Конструктор в группе Элементы управления и поля выберите команду Кнопка.

    Изображение кнопки

  6. В сетке формы щелкните место, где нужно разместить кнопку.

    Откроется окно создания кнопок.

  7. На первой странице мастера щелкните каждую из категорий в списке Категории, чтобы увидеть, какие команды можно назначить этой кнопке в мастере. В списке Макрокоманды выберите нужную макрокоманду, а затем щелкните Далее.

  8. Выберите параметр Текст или Рисунок, чтобы в кнопке отображался соответственно текст или рисунок.

    • Если нужно, чтобы отображался текст, его можно изменить в текстовом поле, расположенном рядом с параметром Текст.

    • Если нужно отобразить рисунок, будет предложено выбрать один из представленных в списке доступных рисунков. Если требуется другой рисунок, установите флажок Показать все рисунки, чтобы показать все рисунки кнопок, доступные в Office Access 2007, или нажмите кнопку Обзор и выберите нужный рисунок.

      Нажмите кнопку Далее.

  9. Введите понятное имя для кнопки. Этот шаг является необязательным, а данное имя не отображается в кнопке. Однако рекомендуется указывать понятные имена, что упростит ссылку на нужные кнопки впоследствии (например, при настройке переключения между элементами управления на форме с помощью клавиши). Например, если данная кнопка закрывает форму, ей можно присвоить имя cmdClose или CommandClose.

  10. Нажмите кнопку Готово.

    Access поместит созданную кнопку на форму.

  11. Если нужно просмотреть созданную мастером программу, выполните следующие шаги (необязательно):

    1. Если окно свойств еще не открыто, нажмите клавишу F4, чтобы открыть его.

    2. Щелкните вкладку Событие в окне свойств.

    3. В поле свойства On Click нажмите кнопку Кнопка "Построитель" .

      В Access откроется окно построителя макросов, содержащее макрос, созданный мастером. При необходимости этот макрос можно изменить (дополнительные сведения об изменении макросов см. в разделе Общее представление о макросах или по ссылкам в разделе См. также). По завершении работы с макросом на вкладке Конструктор в группе Закрыть нажмите кнопку Закрыть, чтобы закрыть окно построителя макросов. Если будет выведено приглашение подтвердить сохранение изменений и обновление свойства, нажмите кнопку Да, чтобы сохранить изменения, или кнопку Нет, чтобы отклонить их.

  12. На вкладке Конструктор в группе Представления нажмите кнопку Представление, а затем щелкните Режим формы. Нажмите новую кнопку, чтобы убедиться, что она работает как ожидалось.

В начало страницы

Общее представление о макросах

Макрос представляет собой средство, которое позволяет автоматизировать выполнение задач и добавить в формы, отчеты и элементы управления дополнительную функциональность. Например, при добавлении кнопки в форму свойство события OnClick этой кнопки связывается с макросом, содержащим команды, которые должны выполняться при каждом нажатии кнопки.

Полезно представить макрос Access как упрощенный язык программирования, где программа создается путем построения списка макрокоманда, которые будут выполнены. При построение макроса каждая из макрокоманд выбирается в раскрывающемся списке, а затем в нее подставляются нужные данные. Макросы позволяют расширять функциональность форм, отчетов и элементов управления, не прибегая к созданию программы в модуле VBA. Макросы содержат поднабор команд, доступных в VBA, и многие пользователи находят более удобным работать с макросами, а не с программами VBA.

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

Построитель макросов

Чтобы открыть построитель макросов:

  • На вкладке Создание в группе Другие щелкните Макрос. Если эта команда недоступна, щелкните стрелку либо под кнопкой Модуль, либо под кнопкой Модуль класса, а затем щелкните Макрос. Изображение кнопки

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

В начало страницы

Общее представление о языке VBA

VBA представляет собой язык программирования, с помощью которого можно создавать в Access мощные приложения. VBA содержит сотни команд, которые позволяют выполнять намного более сложные операции, чем допускается макросами Access.

Возможности VBA можно расширить, воспользовавшись элементами управления сторонних разработчиков или создав собственные функции и процедуры в соответствии со своими потребностями. VBA также можно использовать для интеграции Access с другими программами.

Быстрый способ начать программировать на языке VBA — предварительно построить макрос Access, а затем преобразовать его в программу VBA. Инструкции по этой процедуре содержатся в разделе Преобразование макросов в программы VBA. При этом будет создан новый модуль, содержащий функция VBA, выполняющую те же операции, что и макрос. Кроме того, сразу будет открыт редактор Visual Basic, где можно изменить данную процедуру. При работе в редакторе Visual Basic можно щелкнуть ключевые слова и нажать клавишу F1, чтобы открыть справку разработчика Access и узнать больше о каждом из этих ключевых слов. Позже можно более глубоко изучить справку разработчика Access и узнать о новых командах, которые помогут выполнить нужные задачи программирования.

В начало страницы

Преобразование макросов в программы VBA

В Office Access 2007 можно автоматически преобразовать макросы в модули или модули класса VBA. Преобразование доступно в отношении макросов, прикрепленных к формам или отчетам независимо от того, представлены ли они как отдельные объекты или являются внедренными макросами. Можно также преобразовать глобальные макросы, не связанные с конкретной формой или отчетом.

Преобразование макросов, связанных с формой или отчетом

Следующая ниже процедура преобразовывает в VBA любые макросы, на которые есть ссылка в форме, отчете или их элементах управления (либо макросы, внедренные в эти объекты) и добавляет программу VBA в модуль класса формы или отчета. Модуль класса становится частью формы или отчета и переносится при перемещении или копировании.

  1. В области переходов щелкните правой кнопкой мыши форму или отчет и выберите команду Конструктор.

  2. На вкладке Инструменты для базы данных в группе Макрос щелкните Преобразовать макросы формы или Преобразовать макросы отчета.

  3. В окне Преобразование макросов формы или Преобразование макросов отчета укажите, нужно ли добавлять программы обработки ошибок в создаваемые этими программами функции. Кроме того, если макросы имели примечания, укажите, должны ли они включаться в функции как комментарии. Нажмите кнопку Преобразовать, чтобы продолжить выполнение процедуры.

    Если для формы или отчета существует модуль класса, Access создаст такой модуль и добавит в него отдельную процедуру для каждого макроса, который был связан с формой или отчетом. Кроме того, Access изменит свойства события для формы или отчета таким образом, что впредь вместо макросов будут выполняться новые процедуры VBA.

  4. Чтобы просмотреть и изменить программу VBA, выполните следующие действия:

    1. Если форма или отчет открыты в режиме конструктора, а окно свойств не отображается, нажмите клавишу F4, чтобы открыть его.

    2. На вкладке События окна свойств щелкните одно из полей свойств, которое содержит текст [Процедура события], а затем нажмите кнопку Кнопка "Построитель" . Чтобы просмотреть свойства событий для отдельного элемента управления, щелкните нужный элемент управления. Чтобы просмотреть свойства событий для всей формы или отчета, выберите в раскрывающемся списке, расположенном в верхней части окна свойств, параметр Форма или Отчет.

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

Преобразование глобальных макросов

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

  2. На вкладке Инструменты для базы данных в группе Макрос щелкните Преобразовать макросы.

  3. В диалоговом окне Преобразование макроса укажите нужные параметры, а затем нажмите кнопку Преобразовать.

    Access преобразует макрос и откроет окно редактора Visual Basic.

  4. Чтобы просмотреть и изменить программу VBA, выполните следующие действия:

    1. Если в редакторе Visual Basic не отображается окно проекта, выберите в меню Представление команду Окно проекта.

    2. Разверните дерево под узлом с именем базы данных, в которой ведется работа.

    3. В узле Модули дважды щелкните модуль Преобразованный макрос-имя макроса.

      Нужный модуль будет открыт в редакторе Visual Basic.

Прикрепление функции VBA к свойству события

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

  1. В редакторе Visual Basic обратите внимание на имя функции. Например, если был преобразован макрос с именем МойМакрос, имя функции будет МойМакрос().

  2. Закройте редактор Visual Basic.

  3. В области переходов щелкните правой кнопкой мыши форму или отчет, которые нужно связать с функцией, и выберите команду Конструктор.

  4. Щелкните элемент управления или раздел, которые нужно связать с функцией.

  5. Если окно свойств еще не открыто, нажмите клавишу F4, чтобы открыть его.

  6. На вкладке Событие в окне свойств щелкните поле свойства события, которое нужно связать с функцией.

  7. В поле свойства введите знак равенства (=), а за ним имя функции: =МойМакрос(). Убедитесь, что не забыли поставить скобки.

  8. Сохраните форму или отчет, нажав на панели быстрого доступа кнопку Сохранить Изображение кнопки .

  9. В области переходов дважды щелкните форму или отчет, а затем проверьте, что программа выполняется, как ожидалось.

Это основные шаги по добавлению программы VBA в базу данных. В данной статье приводятся только сведения начального уровня. Доступно большое количество справочников и электронных ресурсов, с помощью которых можно усовершенствовать свои навыки в области программирования.

В начало страницы

Инструкции по работе со справочной системой

В Office Access 2007 помощь при программировании можно получить различными способами. Всегда можно обратиться к справке, нажав кнопку Справка в верхнем правом углу окна Access.

Точка входа в справочную систему

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

При построении макроса или процедуры VBA можно также щелкнуть макрокоманду, ключевое слово или имя встроенной функции, а затем нажать клавишу F1. В большинстве случаев в Access будет отображена справка по выделенному элементу.

Открыв окно справки, воспользуйтесь кнопками перехода на панели инструментов, чтобы перемещаться по страницам.

Панель инструментов окна справки

Щелкните Домашняя страница, чтобы просмотреть оглавление, а затем нажмите кнопки Назад, Вперед, Остановить или Обновить, чтобы перейти из одного раздела в другой или повторно загрузить текущий раздел. Можно также выполнить поиск в справке нужных сведений, введя поисковые термины в поле под панелью инструментов, а затем нажав клавишу ВВОД или щелкнув Поиск.

При поиске сведений по программированию обычно полезно кроме справки Access просмотреть справку разработчика Access.

Переключение в справку разработчика Access

  1. Щелкните стрелку раскрывающегося списка рядом с кнопкой Поиск.

    Список поиска в справке

    В окне справки будет отображен список доступных тем справки.

    Список поиска в справке

  2. При наличии подключения к Интернету в разделе Содержимое на веб-узле Office Online щелкните Справочник разработчика. Рекомендуется именно этот способ, поскольку содержимое на веб-узле Microsoft Office Online всегда наиболее актуально. Если подключение к Интернету отсутствует или системный администратор отключил возможность получить доступ к сетевому ресурсу из окна справки, можно просмотреть справку разработчика Access, щелкнув Справочник разработчика в группе Содержимое на данном компьютере.

  3. Для перемещения по справке воспользуйтесь ссылками в оглавлении или введите термин для поиска в поле, расположенное непосредственно под панелью инструментов, а затем нажмите клавишу ВВОД.

  4. Чтобы переключиться обратно в справку Access, щелкните стрелку раскрывающегося списка рядом с кнопкой Поиск, а затем щелкните Справка Access в группе Содержимое на веб-узле Office Online или Содержимое на данном компьютере.

Чтобы получить дополнительные сведения о работе с локальной или сетевой справкой, щелкните меню «Состояние подключения» в левом нижнем углу окна справки и выберите команду Объяснение параметров.

Подключение к веб-узлу Office Online из средства просмотра справки

В начало страницы

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×