Как связать кнопку с макросом в access

Обновлено: 17.04.2024

2. Изучение способов создания макросов. Основные вопросы.

3. Получение необходимых сведений о шифровании БД, использовании паролей, защите БД.

4. Приобретение практического навыка шифрования БД, установки паролей, создании скомпилированного файла БД.

Общие сведения

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

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

Кнопочная форма

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

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

1. Открыть область переходов.

2. Выбрать вкладку Формы.

3. Открыть требуемую форму.

А благодаря кнопочной форме достаточно просто щелкнуть на кнопке.

На рис. 11.1 показана главная кнопочная форма БД «Борей», которая позволяет открывать формы БД, печатать отчеты, открывать окно БД.

Область переходов

Используя кнопочную форму, можно объединять ранее созданные объекты БД в одном приложении. Основным элементом внешнего вида приложения, создаваемого пользователем, является кнопочная форма.

Поскольку кнопочная форма выполняет только роль меню приложения, в ней следует использовать минимальное число элементов управления. Поэтому обычно в кнопочную форму включают только кнопки, надписи, рамки объектов (например, рисунки), линии и прямоугольники. Другие типы элементов управления, такие как текстовые поля (связанные с полями БД), списки, поля со списками, диаграммы и подчиненные формы, обычно в этой форме не используются.

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

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

Работа с кнопками

Кнопка является простейшим элементом управления формы и используется для запуска макроса или подпрограммы VBA.

В MS Access благодаря макросам, запускаемым с помощью кнопок, можно выполнять самые разные задачи:

1. Открывать и отображать другие формы.

2. Открывать диалоговые окна для получения дополнительной информации.

3. Открывать и печатать отчеты.

4. Искать записи или выполнять фильтрацию.

5. Выходить из MS Access.

На рис. 11.2 показана кнопка Кнопка0 и окно свойств с доступными для данной кнопки событиями.


рис. 11.2. События кнопки

Любое свойство события можно связать с макросом. Например, для запуска макроса ОткрытьФорму после щелчка на кнопке следует ввести имя этого макроса в поле свойства Нажатие кнопки. Каждое из этих свойств соответствует определенному событию, после которого запускается макрос.

Создание кнопок

Кнопки чаще всего используются для запуска макросов. MS Access предлагает два способа их создания:

· с помощью элемента управления Кнопка;

· путем перетаскивания имени макроса из списка макросов БД в данную форму.

Использование Мастера для создания кнопки было рассмотрено в лабораторной работе №9. Но Мастер создает не макрос, а VBA-модуль.

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

Это можно сделать разными способами:

1. Отключить кнопку Использовать Мастера в группе Элементы управления контекстного меню Инструменты конструктора форм – Конструктор ленты инструментов. Далее выбрать элемент управления Кнопка и поместить его в нужное место формы.

2. С включенной кнопкой Использовать Мастера выбрать элемент управления Кнопка, поместить его в нужное место формы, после появления окна Мастера на экране отказаться от его помощи, нажав кнопку Отмена.

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

Связывание кнопки с макросом

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

Чтобы связать кнопку с запуском макроса, достаточно ввести имя макроса в поле одного из свойств событий этой кнопки (рис. 11.3).


рис. 11.3. Связывание кнопки с макросом

Чаще других для запуска макроса используется свойство Нажатие кнопки, которое позволяет запустить макрос, щелкнув на данной кнопке.

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

Также на вкладке Макет окна свойств кнопки необходимо изменить имя кнопки в поле Подпись, чтобы было понятно назначение кнопки.

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

В этой статье

Программирование

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

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

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

Выбор в пользу макросов или кода VBA

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

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

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

Рекомендации по использованию макросов

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

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

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

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

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

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

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

Рекомендации по использованию VBA

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы хотите просмотреть программный код, созданный мастером, можно сделать следующее:

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

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

В окне свойства "По щелчку" нажмите кнопку "Построить" .

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

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

Макросы

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

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

Создать макрос можно с помощью конструктора макросов, который показан на этом рисунке:

Вот как можно открыть конструктор макросов:

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

Код VBA

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

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

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

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

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

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

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

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

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

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

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

Форма или отчет должны быть по-прежнему открыты в режиме конструктора. Если окно свойств не отображается, нажмите клавишу F4.

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

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

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

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

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

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

Макрос будет преобразован, и откроется редактор Visual Basic.

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

В редакторе Visual Basic, если область Project Explorer (Окно проекта) не отображается, в меню View (Вид) выберите пункт Project Explorer.

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

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

Модуль откроется в редакторе Visual Basic.

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

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

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

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

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

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

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

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

В поле свойства введите знак равенства (=), а затем — имя функции (например, =MyMacro(). Не забудьте ввести скобки.

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

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

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

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

В этой статье

Добавление кнопки в форму с помощью мастера

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

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

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

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

Щелкните форму в том месте, где должна находиться кнопка.

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

Следуйте указаниям мастера. На его последней странице нажмите кнопку Готово.

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

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

Щелкните в области навигации правой кнопкой мыши форму с нужной кнопкой и выберите в контекстном меню пункт Конструктор или Режим макета .

Щелкните кнопку, чтобы выделить ее, и нажмите F4, чтобы открыть окно ее свойств.

В окне свойств на вкладке События в поле свойства Нажатие кнопки должен отображаться текст [Внедренный макрос]. Щелкните в этом поле и нажмите справа от него кнопку .

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

Создание кнопки перетаскиванием макроса в форму

Кнопку запуска макроса можно создать, перетащив готовый макрос в форму в режиме конструктора.

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

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

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

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

Создание кнопки без использования мастера

Кнопку можно создать и без мастера. Для этого нужно расположить кнопку на форме и настроить несколько свойств.

Щелкните форму в области навигации правой кнопкой мыши и выберите в контекстном меню пункт Конструктор .

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

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

Щелкните форму в том месте, где должна находиться кнопка.

Access добавит кнопку в форму.

Поскольку параметр Использовать мастера не установлен, больше ничего сделано не будет. Если при добавлении кнопки в форму запустится мастер создания кнопок, можете нажать в нем кнопку Отмена.

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

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

Задайте нужные свойства, руководствуясь указаниями в таблице ниже.

По умолчанию Access назначает новой кнопке имя Кнопка и добавляет к нему число, например Кнопка34. Рекомендуется изменить такое имя на что-либо более выразительное (например, Отчет о продажах или Закрыть форму). Это поможет, когда кнопку нужно будет использовать в макросе или процедуре обработки событий.

Введите метку, которая будет отображаться на кнопке. Например, "Отчет о продажах" или "Закрыть форму".

Примечание: Если свойству Рисунок кнопки назначено изображение, подпись не отображается.

Нажатие кнопки

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

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

Чтобы кнопка запускала встроенную функцию или функцию VBA, введите знак равенства (=) и имя функции, например =MsgBox("Привет, мир") или =MyFunction(аргументы).

Чтобы создать выражение, нажмите и выберите пункт Выражения.

Чтобы начать создание процедуры обработки событий на Visual Basic для приложений (VBA), нажмите и выберите пункт Программы. Чтобы создать внедренный макрос с действиями, которые будет запускать кнопка, нажмите и выберите пункт Макросы.

Примечание: Базам данных Access, содержащим код VBA, для выполнения кода необходимо предоставить статус надежных.

Чтобы получить справку по свойствам, которые здесь не описаны, поместите курсор в поле свойства и нажмите клавишу F1.

Настройка кнопки

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

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

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

Создание горизонтального (табличного) или вертикального (в столбик) макета кнопок

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

Щелкните правой кнопкой мыши одну из кнопок, которые нужно добавить в макет, и наведите указатель на пункт Макет в контекстном меню.

Выберите пункт В виде таблицы или В столбик , чтобы создать соответственно строку или столбец кнопок.

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

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

На рисунке ниже показаны кнопка и связанная с ней метка в макете в столбик. В таком макете метка и кнопка всегда расположены в одном разделе.

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

Когда вы отпустите кнопку мыши, элемент управления будет добавлен в макет.

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

На вкладке Упорядочить выберите команду Вверх или Вниз.

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

Примечание: В макете в столбик команды Вверх и Вниз отключены.

Перемещение всего макета кнопок

Щелкните любую из кнопок в макете.

В левом верхнем углу макета появится значок селектора.

Чтобы переместить макет в другое место, перетащите селектор.

Добавление линий сетки в макет кнопок

Выделите любую из кнопок в макете.

На вкладке Упорядочить нажмите кнопку Сетка и выберите стиль линий сетки.

Создание прозрачной кнопки

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

Щелкните кнопку, которую нужно сделать прозрачной, и нажмите F4, чтобы отобразить окно ее свойств.

Щелкните в окне свойств на вкладке Макет поле свойства Прозрачный.

Выберите в раскрывающемся списке значение Да.

Вы по-прежнему будете видеть контур кнопки в режиме конструктора, но в режиме формы она будет невидима.

Примечание: Выбор для свойства "Прозрачность" для кнопки "Да" — не то же самое, что для свойства "Видимый" — "Нет". Обе операции скрывают кнопку, но если для свойства "Прозрачность" установить "Да", кнопка остается включенной. Если для свойства "Видимый" установить "Нет", кнопка будет отключена.

Отображение кнопки в виде гиперссылки

При желании можно скрыть кнопку, но оставить ее подпись. В результате получится элемент управления, который выглядит как надпись, но работает как кнопка. Можно также подчеркнуть текст подписи и изменить его цвет, чтобы он выглядел как гиперссылка.

Щелкните кнопку, чтобы выделить ее, и нажмите F4, чтобы открыть окно ее свойств.

В окне свойств на вкладке Макет щелкните поле Тип фона.

В раскрывающемся списке выберите вариант Прозрачный.

Кнопка будет скрыта, но ее подпись останется видимой.

Чтобы подчеркнуть текст подписи или изменить его цвет, воспользуйтесь инструментами из группы Шрифт на вкладке Формат.

Команды в группе

Создание кнопки "Отмена"

Щелкните кнопку и нажмите F4, чтобы открыть окно ее свойств.

В поле свойства Отмена выберите значение Да.

Если свойство "Отмена" для кнопки имеет значение "Да" и форма является активной, пользователь может выбрать ее, щелкнув ее, нажав клавишу ESC или клавишу ВВОД, когда кнопка фокус. Если для свойства "Отмена" одной кнопки установлено "Да", для всех остальных кнопок формы оно автоматически получает ответ "Нет".

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

Примечание: Если в форме разрешены необратимые операции (например, удаление), рекомендуется сделать кнопку "Отмена" используемой по умолчанию. Чтобы сделать это, установите значение Да для свойств По умолчанию и Отмена.

Отображение рисунка на кнопке. Введите в поле свойства Рисунок имя файла изображения (например, в формате BMP, ICO или DIB) и путь к нему. Если вы не помните точно имя файла или путь, нажмите кнопку , чтобы открыть построитель рисунков.

Отображение на кнопке и рисунка, и подписи

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

Добавьте рисунок на кнопку по приведенным ранее инструкциям

Выделите кнопку. Если окно ее свойств не отобразится, нажмите клавишу F4.

В окне свойств кнопки на вкладке Макет введите нужную подпись в поле свойства Подпись.

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

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

Примечание: Эта статья не относится к веб-приложениям Access.

В этой статье

Общие сведения

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

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

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

Вот некоторые основные возможности конструктора макроса.

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

IntelliSense. При вводе выражений IntelliSense предлагает возможные значения и позволяет выбрать правильное значение.

Сочетания клавиш Используйте сочетания клавиш, чтобы ускорить и упростить написание макроса.

Поток программы Создавайте более понятные макросы с строками прикомментов и группами действий.

Условные выписки Разрешить более сложное выполнение логики с поддержкой вложенных если/Иначе если.

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

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

Браузер не поддерживает видео.

Создание автономного макроса

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

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

Откроется конструктор макросов.

На панели быстрого доступа нажмите кнопку Сохранить.

В диалоговом окне Сохранение введите имя макроса, а затем нажмите кнопку "ОК".

Создание внедренного макроса

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

Так как макрос становится частью объекта формы или отчета, внедренные макросы рекомендуется использовать для автоматизации задач, которые относятся к конкретной форме или отчету.

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

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

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

Щелкните поле свойства для события, которое должно активировать макрос. Например, если вы хотите, чтобы макрос выполнялся при нажатии кнопки, щелкните поле свойства Нажатие для кнопки.

Если поле свойства содержит слова [Внедренный макрос], это означает, что для этого события уже создан макрос. Вы можете изменить его, выполнив действия, описанные далее в этой процедуре.

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

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

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

Добавление макрокоманд в макрос

Макрокомандами называются отдельные команды, которые образуют макрос. Имя макрокоманды отражает ее назначение, например НайтиЗапись или ЗакрытьБазуДанных.

Шаг 1. Просмотр или поиск макрокоманд

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

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

На вкладке Конструктор в группе Показать или скрыть выберите пункт Показать все действия.

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

Найти макрокоманду можно одним из следующих способов:

Щелкните стрелку раскрывающегося списка Добавить новую макрокоманду и прокрутите список вниз, чтобы найти макрокоманду. Сначала выводятся элементы управления выполнением программы, а затем — макрокоманды в алфавитном порядке.

Найдите макрокоманду в области "Каталог макрокоманд". Макрокоманды сгруппированы по категориям. Разверните категории для просмотра макрокоманд. При выборе макрокоманды в нижней части каталога выводится ее краткое описание.

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

Шаг 2. Добавление макрокоманды в макрос

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

Выберите макрокоманду в списке Добавить новую макрокоманду или просто начните вводить имя макрокоманды в поле. Access добавит макрокоманду туда, где отображался список Добавить новую макрокоманду.

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

Дважды щелкните макрокоманду в каталоге макрокоманд.

Если в области макроса выбрана макрокоманда, Access добавит новую макрокоманду под выбранной.

Если в области макроса выделен блок Группа, Если, Иначе если, Иначе или Вложенный макрос, Access добавит новую макрокоманду в него.

Если в области макроса не выбраны макрокоманды и блоки, Access добавит новую макрокоманду в конец макроса.

Если вы уже создали один или несколько макросов, они указаны в узле В этой базе данных каталога макрокоманд.

При перетаскивании автономного макроса (который указан в разделе Макросы) в область макроса создается макрокоманда ЗапускМакроса, которая выполняет перетащенный макрос. Затем вы можете с помощью раскрывающегося списка вызвать вложенные макросы, если они имеются.

Если вы хотите просто скопировать макрокоманды из автономного макроса в текущий (вместо того чтобы создавать макрокоманду ЗапускМакроса), щелкните его правой кнопкой мыши в каталоге макрокоманд и выберите команду Добавить копию макроса.

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

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

Шаг 3. Ввод аргументов

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

Ввод выражения с помощью функции IntelliSense

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

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

Сведения об использовании IntelliSense со свойствами веб-базы данных

При создании макроса пользовательского интерфейса, внедренного в веб-совместимую форму, IntelliSense позволяет добавлять любые свойства формы в выражение. Однако в веб-базе данных с помощью макросов пользовательского интерфейса можно получать доступ только к некоторым свойствам формы. Например, если в форме "Форма1" есть элемент управления "Элемент1", IntelliSense позволит добавить [Формы]![Форма1]![Элемент1].[ControlSource] в выражение в макросе пользовательского интерфейса. Но если опубликовать базу данных в службах Access, макрос, содержащий выражение, будет вызывать ошибку при запуске на сервере.

В таблице ниже перечислены свойства, которые вы можете использовать в макросах пользовательского интерфейса в веб-базах данных:

makros

Макрос – это набор из нескольких команд на языке Visual Basic, который позволяет упростить или запрограммировать операции с базой данной. Как правило макросы записываются в автоматическом режиме, поэтому нет необходимости в знании языка Viual Basic. Макросы программируют рутинные операции при помощи легко создаваемммых кнопок. С помощью макросов удобно создавать главное меню прикладной системы и подчиненные меню. В Access 97 имеется 49 макрокоманд, которые можно включать в макросы.

Как правило макросы связаны с “реакцией на событие” управляющих элементов Access. События определяют, что происходит при нажатии кнопки, входе или выходе из поля БД, открытии или закрытии формы или отчета.

Замечание. Первоначально задания приводятся с учетом Access 97, в дальнейшем планируется их адаптировать под более поздние версии.

Создание кнопок для запуска форм

Создадим форму “Панель с кнопками” для вызова некоторых форм нашей базы данных. Для этого выберем закладку Макрос на панели базы данных, нажмем кнопку Создать. На экране появится окно Макрос1: макрос. В нем имеется таблица с двумя полями. Первое из них предназначено для записи макроса, второе – для комментариев. Теперь сделаем доступными одновременно два окна, для этого выберем пункты меню Окно / Слева направо.

Нажмем на панели БД закладку Форма, выберем форму “Покупатель” и перетащим ее в первую строку таблицу определения макроса в столбец Макрокоманда. Там появится текст Открыть Форму, в нижней части окна – аргументы макрокоманды. Свернем окно базы данных, откроем побольше окно макросов. В строке Примечание запишем Ввод данных по покупателю. Закроем макрос, сохраним его с именем “Покупатель”.

Теперь создадим форму для размещения кнопок. Выберем закладку Форма в окне базы данных, создадим «пустую» форму, для чего нажмем кнопку Создать и выберем режим Конструктор. Затем снова перейдем к закладке Макрос, возьмем созданный нами макрос “Покупатель” и отбуксируем его в форму. Там появится кнопка с надписью Покупатель. При просмотре списка можно обнаружить, что в свойстве Нажатие кнопки записано имя макроса «Покупатель».

Закроем форму и сохраним ее с именем “Панель кнопок”. Для проверки ее работы откроем форму и нажмем кнопку Покупатель. На экране появится созданная нами ранее форма “Покупатель”, с помощью которой можно просматривать и вводить данные по покупателям.

Читайте также: