Введение в программирование Access

Создание базы данных обычно начинается с создания нескольких объектов, например таблиц, форм и отчетов. Рано или поздно приходится прибегать к программированию, чтобы автоматизировать некоторые процессы и связать объекты базы данных. В этой статье приведены сведения о средствах программирования, доступных в Access 2010.

Примечание   В веб-базу данных можно добавить код на языке Visual Basic for Applications (VBA); однако этот код нельзя выполнить, пока база данных открыта в браузере. Если в базе данных используется код VBA, для его выполнения необходимо сначала открыть базу данных в Access. Для выполнения задач программирования в веб-базе данных используйте макросы Access.

Дополнительные сведения о веб-базах данных см. в статье Создание базы данных для совместного использования в Интернете.

В этой статье

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

Что следует использовать: макросы или код VBA?

Использование мастера кнопок для выполнения общих задач программирования

Общие сведения о макросах

Общие сведения о коде VBA

Преобразование макросов в код VBA

Использование справочной системы

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

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

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

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

К началу страницы

Что следует использовать: макросы или код VBA?

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

Веб-приложения Access.    Веб-приложения Access — это новая технология в Access 2010, с помощью которой можно опубликовать приложение на сервере Microsoft SharePoint Server, на котором выполняются службы Access. Это позволяет другим пользователям использовать базу данных с помощью стандартного веб-браузера, не устанавливая приложение Access на компьютере. Однако код VBA несовместим с функцией веб-публикации, поэтому если планируется опубликовать приложение как веб-приложение Access, для выполнения задач программирования необходимо использовать только макросы.

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

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

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

Соображения по поводу макросов

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

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

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

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

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

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

Дополнительные сведения о создании макросов см. в разделе Общие сведения о макросах.

Соображения по поводу кода VBA

Код VBA следует использовать вместо макросов для выполнения указанных ниже задач.

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

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

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

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

К началу страницы

Использование мастера кнопок для выполнения общих задач программирования

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

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

  2. На вкладке Конструктор щелкните стрелку вниз, чтобы отобразить коллекцию Элементы управления, и убедитесь, что выбран элемент Использовать мастера.

  3. На вкладке Конструктор в коллекции Элементы управления щелкните элемент Кнопка.

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

    Будет запущен мастер создания кнопок.

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

  6. Выберите вариант Текст либо Рисунок в зависимости от того, что необходимо отобразить на кнопке.

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

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

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

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

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

    Кнопка будет вставлена в форму.

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

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

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

    3. В поле свойства Нажатие кнопки нажмите кнопку Построить Изображение кнопки.

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

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

К началу страницы

Общие сведения о макросах

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

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

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

Конструктор макросов Access 2010

Отображение конструктора макросов

  • На вкладке Создание в группе Макросы и код нажмите кнопку Макрос.

К началу страницы

Общие сведения о коде VBA

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

Примечание   В веб-базу данных можно добавить код на языке Visual Basic for Applications (VBA), однако этот код нельзя выполнять, пока база данных открыта в браузере. Если в базе данных используется код на языке VBA, для выполнения этого кода необходимо сначала открыть базу данных в приложении Access. Для выполнения задач программирования в веб-базе данных используйте макросы Access.

Дополнительные сведения о веб-базах данных см. в статье Создание базы данных для совместного использования в Интернете.

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

К началу страницы

Преобразование макросов в код VBA

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

Примечание   В веб-базу данных можно добавить код на языке Visual Basic for Applications (VBA), однако этот код нельзя выполнять, пока база данных открыта в браузере. Если в базе данных используется код на языке VBA, для выполнения этого кода необходимо сначала открыть базу данных в приложении Access. Для выполнения задач программирования в веб-базе данных используйте макросы Access.

Дополнительные сведения о веб-базах данных см. в статье Создание базы данных для совместного использования в Интернете.

Преобразование макросов, которые присоединены к форме или отчету

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

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

  2. На вкладке Конструктор в группе Сервис выберите команду Преобразование макросов формы в Visual Basic или Преобразование макросов отчета в Visual Basic.

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

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

  4. Просмотр и редактирование кода VBA

    1. Откройте форму или отчет в режиме конструктора и нажмите клавишу F4 для отображения окна свойств.

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

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

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

  1. В области навигации щелкните правой кнопкой мыши макрос, который необходимо преобразовать, и выберите в контекстном меню пункт Конструктор.

  2. На вкладке Конструктор в группе Сервис нажмите кнопку Преобразовать макросы.

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

    Microsoft 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 к базе данных. В данной статье рассмотрены только основы, которые позволяют приступить к работе, но существует много отличных книг и сетевых ресурсов, помогающих совершенствовать навыки программирования.

К началу страницы

Использование справочной системы

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

Кнопка справки

Access отобразит окно справки.

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

После открытия окна справки используйте для перемещения между страницами кнопки навигации на панели инструментов.

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

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

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

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

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

    Кнопка поиска в справке

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

    Список поиска в справочной системе

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

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

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

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

Сообщение о состоянии подключения в средстве просмотра справки

К началу страницы

Применяется к: Access 2010



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

Да Нет

Что мы могли бы улучшить?

255 осталось символов

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

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

Ресурсы поддержки

Изменить язык