Модуль в аксесс
Cоздание модуля формы в СУБД Access 2003
Cоздание модуля обработки некоторого события в Access 2003
Итак, в СУБД Access 2003 для каждого объекта (окон, меню, кнопок и т.д.) определены возможные события. Необходимо отметить, что события можно разделить на несколько типов: события мыши, клавиатуры, печати, окна, данных и т.д. Щелчки мыши, нажатия клавиш клавиатуры и т.д. — это события, которые возникают от действия пользователей. Отклики на события, которые возникают от действий пользователей, могут быть в СУБД Access 2003 реализованы в виде модулей. Основное содержание модулей — это процедуры на языке VBA.
Рассмотрим создание модуля формы (процедуры на языке VBA) путем обработки некоторого события, связанного с каким-либо элементом формы, например с нажатием кнопки. Здесь рассматриваемое событие – нажатие, а элемент формы – кнопка. Нажатие осуществляется с помощью мыши. Нажатие кнопки — это одно из наиболее широко распространенных событий.
Сначала создадим новую форму в базе данных Access 2003. Для этого на вкладке Формы в окне базы данных Access 2003 щелкаем на пиктограмме Создать, и в появившемся окне Новая форма выбираем способ создания формы — Конструктор. Далее щелкаем на кнопке ОК.
В открывшуюся пустую форму, которая не содержит ни одного модуля, вставляем кнопку. Для этого на панели элементов выбираем элемент Кнопка и щелкаем на ней, затем указатель мыши переводим в область формы и щелкаем в области данных. Таким образом, рисуем кнопку в форме.
Переименуем кнопку1 в кнопку Пуск (изменим подпись непосредственно на кнопке) и присвоим ей имя cmdPusk (cmd или command button- командная кнопка) в окне диалога Кнопка: Кнопка1.
Сохраним форму под названием FormaP.
Далее в форме, открытой в режиме конструктор, щелкаем на кнопке Пуск и в диалоговом окне «Кнопка: cmdPusk» на вкладке События выбираем событие — Нажатие кнопки. Необходимо отметить, что все события, на которые может реагировать кнопка, перечислены на вкладке События.
Затем щелкаем на кнопке с тремя точками в окне диалога «Кнопка: cmdPusk» или на пиктограмме Построитель на панели инструментов.
Откроется окно диалога Построитель, в котором выделяем команду Программы, и нажмем ОК.
Запускается редактор Visual Basic и в окне «Project — Деканат» отображается иерархическое дерево объектов приложения «Деканат (Training_students_O)», в котором появился новый модуль формы Form_ FormaP.
А в окне редактора кода (Code) будет отображаться код программы для кнопки Пуск.
В окне редактора кода Training_students_O — Form_FormaP (Code) отображается код модуля объекта, который содержит непосредственно код программы на Visual Basic. Этот модуль содержит первый и последний операторы процедуры, т.е. представляет собой заготовку процедуры Click, которая доступна только внутри модуля формы FormaP или модуля классов. Здесь Privat означает, что данная процедура может применяться только внутри конкретного модуля. Тип процедуры Sub — это процедура-подпрограмма. Далее отображается имя процедуры события — cmdPusk_Click (). Имя процедуры состоит из имени объекта cmdPusk, подчеркивания и названия события Click (). В конце модуля отображается опрератор End Sub — завершение процедуры.
Процедура обработки события Click (нажатия кнопки) объекта cmdPusk — это инструкция или набор взаимосвязанных инструкций, которые должны быть заключены между операторами Privat Sub cmdPusk_Click () и End Sub. Нажатие кнопки будет автоматически запускать процедуру событий. Какие инструкции может выполнять кнопка при нажатии? Примеры процедур, которые обрабатывают события Click, рассмотрим в следующей статье.
Copyright
© Обучение в интернет, .
Обратная связь
Модули класса
Вторым типом модуля в Access является модуль класса. Модуль класса отличается от стандартного модуля тем, что, кроме процедур, он содержит описание объекта и используется для создания объектов. Процедуры, определенные в этом модуле, являются методами и свойствами объекта. Примерами модулей класса являются модули форм и отчетов.
Модули форм и отчетов связаны с конкретной формой или отчетом и содержат процедуры обработки событий для этой формы или отчета. Модуль формы не создается сразу при создании новой формы. Он создается и связывается с формой, как только вы попытаетесь создать первую процедуру обработки событий для этой формы или одного из элементов управления формы или же нажмете кнопку Программа (Code) в окне Конструктора формы.
Чтобы убедиться в этом, откройте любую форму приложения «Борей» (Northwind) в режиме Конструктора и посмотрите свойства этой формы. На вкладке Другие (Others) есть свойство Наличие модуля (Has Module). Оно должно иметь значение Нет (No). После нажатия кнопки Программа (Code), которая служит для открывания редактора кода VBA, значение этого свойства изменится на Да (Yes) (рис. 13.9).
Рис. 13.9. Диалоговое окно свойств формы
В окне редактора VBA отображается объект Форма (Form), а справа — поле со списком событий, которые могут обрабатываться процедурами VBA (рис. 13.10).
Рис. 13.10. Окно редактора кода VBA
Если в модуле для некоторого события существует процедура, то это событие выделяется в списке жирным шрифтом. В данном случае таких событий нет, т. к. обработка событий в форме «Клиенты» (Customers), которую мы открыли, выполняется с помощью макросов. При попытке открытия редактора VBA автоматически создается модуль формы, который будет иметь название Fогm_Клиенты (Form_Customers).
Если теперь закрыть окно редактора кода, а затем форму, то, хотя мы не вносили никаких изменений в форму, на экране появится вопрос: Сохранить изменения макета или структуры формы Клиенты? (Do you want to save changes to the design of form ‘Customers’?). Вопрос связан с появлением модуля формы. Если вы ответите Нет (No), модуль не будет сохранен.
Для того чтобы из программы VBA открыть форму и изменить какие-либо свойства формы или элементов управления формы, можно использовать два метода.
- Макрокоманду OpenForm, как метод объекта DoCmd, например:
- Ссылку на соответствующий модуль класса, например:
В том и в другом случае при выполнении открывается стандартный экземпляр формы «Товары» (Products) и подменяется источник записей для этой формы.
VBA позволяет открывать сразу несколько экземпляров класса формы. Это может потребоваться, например, когда хотят показать в разных окнах головную организацию и дочернюю фирму. Информация о той и другой может храниться в разных записях одной таблицы, и вам необходимо открыть два экземпляра одной формы с разными записями в каждом экземпляре.
Класс формы может иметь только один стандартный экземпляр, поэтому в данном случае придется создать нестандартный экземпляр формы. Для этого в программе нужно описать переменную, типом которой является имя модуля класса формы, при этом в описание переменной включить ключевое слово New. Например, следующая команда создает новый экземпляр формы » Клиенты» (Customers) и связывает его с переменной типа Form:
Теперь изменим источник данных для этой формы, расположение на экране (иначе формы просто перекроются) и присвоим свойству Вывод на экран (Visible) значение Да (Yes):
frm.RecordSource = «Наша организация» DoCmd.MoveSize 1440, 2400 frm.Visible = True
Для изменения положения на экране используется макрокоманда СдвигРазмер (MoveSize), в которой в данном случае задаются координаты верхнего левого угла окна формы относительно главного окна Access.
Замечание
Для того чтобы второй экземпляр формы не исчез с экрана сразу после появления, переменная frm должна быть описана на уровне модуля, т. е. объявлена в разделе (Declarations ) модуля с помощью ключевого слова Private.
Значения свойств формы или элементов управления формы относятся только к текущему экземпляру формы и не сохраняются после того, как он закроется. Это является отличием модуля класса от стандартного модуля: они по-разному хранят данные. В стандартном модуле можно объявить переменную Public, и она, будучи установлена, сохраняет свое значение до тех пор, пока явно не будет изменена другой командой в любом другом модуле. В модуле класса данные относятся к одному экземпляру класса, т. е. одному объекту. Они появляются, когда объект создается, и исчезают, когда исчезает объект. Это означает, что переменные Public в модуле класса могут быть доступны только до тех пор, пока существует переменная, содержащая ссылку на отдельный экземпляр класса. Это утверждение справедливо также для процедур, объявленных Public.
Формы и отчеты являются стандартными классами объектов в Access, однако можно использовать модули класса для создания пользовательских объектов. Имя, под которым сохраняется модуль класса, становится именем специального объекта. Процедуры типа Sub и Function, определенные в модуле класса, при этом станут методами объекта, а процедуры типа Property Let, Property Get и Property Set-свойствами объекта. Для описания метода, не возвращающего никакого значения, используется процедура Sub, а для метода, возвращающего значение, — процедура Function. Процедура Property Get возвращает значение свойства объекта. Процедура Property Set присваивает значение свойству объекта. Процедура Property Let устанавливает значение свойства, не принадлежащего объекту. Более детальные сведения об этих процедурах можно получить из справки Access, набрав в качестве критерия поиска имя процедуры: Property Let, Property Get и Property Set соответственно.
Точно так же, как и в модуле формы, новый экземпляр объекта создается путем объявления переменной, например:
После этого обращение к его методам и свойствам осуществляется с помощью данной переменной. Например, если в модуле определена процедура MyProcedure, для того чтобы выполнить эту процедуру, используется выражение
Основные сведения о базах данных
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Эта статья содержит краткие сведения о базах данных: что это, чем они могут быть полезны, каковы функции их отдельных элементов. Здесь используется терминология, свойственная Microsoft Access, однако описываемые понятия применимы по отношению к любым базам данных.
В этой статье:
Что представляет собой база данных?
Базы данных — это инструмент для сбора и структурирования информации. В базе могут храниться данные о людях, товарах, заказах и о многом другом. Многие базы данных изначально представляют собой небольшой список в текстовом редакторе или электронной таблице. По мере увеличения объема данных в списке постепенно появляются несоответствия и излишняя информация. Информация, отображенная в виде списка, становится непонятной. Кроме того, ограничены способы, с помощью которых можно искать и отображать подмножества данных. Как только начинают появляться эти проблемы, мы рекомендуем перенести всю информацию в базу данных, созданную в системе управления базами данных (СУБД), такой как Access.
Компьютерная база данных — это хранилище объектов. В одной базе данных может быть больше одной таблицы. Например, система отслеживания складских запасов, в которой используются три таблицы, — это не три базы данных, а одна. В базе данных Access (если ее специально не настраивали для работы с данными или кодом, принадлежащими другому источнику) все таблицы хранятся в одном файле вместе с другими объектами, такими как формы, отчеты, макросы и модули. Для файлов баз данных, созданных в формате Access 2007 (который также используется в Access 2016, Access 2013 и Access 2010), используется расширение ACCDB, а для баз данных, созданных в более ранних версиях Access, — MDB. С помощью Access 2016, Access 2013, Access 2010 и Access 2007 можно создавать файлы в форматах более ранних версий приложения (например, Access 2000 и Access 2002–2003).
Использование Access позволяет:
добавлять новую информацию в базу данных, например новый артикул складских запасов;
изменять информацию, уже находящуюся в базе, например перемещать артикул;
удалять информацию, например если артикул был продан или утилизирован;
упорядочивать и просматривать данные различными способами;
обмениваться данными с другими людьми с помощью отчетов, сообщений электронной почты, внутренней сети или Интернета.
Элементы базы данных Access
Ниже приведены краткие описания элементов стандартной базы данных Access.
Таблицы
Таблица базы данных похожа на электронную таблицу — и там, и там информация расположена в строках и столбцах. Поэтому импортировать электронную таблицу в таблицу базы данных обычно довольно легко. Основное различие заключается в том, как данные структурированы.
Чтобы база данных была как можно более гибкой и чтобы в ней не появлялось излишней информации, данные должны быть структурированы в виде таблиц. Например, если речь идет о таблице с информацией о сотрудниках компании, больше одного раза вводить данные об одном и том же сотруднике не нужно. Данные о товарах должны храниться в отдельной таблице, как и данные о филиалах компании. Этот процесс называется нормализацией.
Строки в таблице называются записями. В записи содержатся блоки информации. Каждая запись состоит по крайней мере из одного поля. Поля соответствуют столбцам в таблице. Например, в таблице под названием «Сотрудники» в каждой записи находится информация об одном сотруднике, а в каждом поле — отдельная категория информации, например имя, фамилия, адрес и т. д. Поля выделяются под определенные типы данных, например текстовые, цифровые или иные данные.
Записи и поля можно описать по-другому. Представьте старый библиотечный карточный каталог. Каждой карточке в шкафу соответствует запись в базе данных. Блоки информации на карточке (автор, название книги и т. д.) соответствуют полям в базе данных.
Дополнительные сведения о таблицах см. в статье Общие сведения о таблицах.
Формы
С помощью форм создается пользовательский интерфейс для ввода и редактирования данных. Формы часто содержат кнопки команд и другие элементы управления, предназначенные для выполнения различных функций. Можно создать базу данных, не используя формы, если просто отредактировать уже имеющуюся информацию в таблицах Access. Тем не менее, большинство пользователей предпочитает использовать формы для просмотра, ввода и редактирования информации в таблицах.
С помощью кнопок команд задаются данные, которые должны появляться в форме, открываются прочие формы и отчеты и выполняется ряд других задач. Например, есть «Форма клиента», в которой вы работаете с данными о клиентах. И в ней может быть кнопка, нажатием которой открывается форма заказа, с помощью которой вы вносите информацию о заказе, сделанном определенным клиентом.
Формы также дают возможность контролировать взаимодействие пользователей с информацией базы данных. Например, можно создать форму, в которой отображаются только определенные поля и с помощью которой можно выполнять только ограниченное число операций. Таким образом обеспечивается защита и корректный ввод данных.
Дополнительные сведения о формах см. в статье Формы.
Отчеты
Отчеты используются для форматирования, сведения и показа данных. Обычно отчет позволяет найти ответ на определенный вопрос, например «Какую прибыль в этом году принесли нам наши клиенты?» или «В каких городах живут наши клиенты?» Отчеты можно форматировать таким образом, чтобы информация отображалась в наиболее читабельном виде.
Отчет можно сформировать в любое время, и в нем всегда будет отображена текущая информация базы данных. Отчеты обычно форматируются таким образом, чтобы их можно было распечатать, но их также можно просматривать на экране, экспортировать в другие программы или вкладывать в сообщения электронной почты.
Дополнительные сведения об отчетах читайте в статье Общие сведения об отчетах в Access.
Запросы
Запросы могут выполнять множество функций в базе данных. Одна из их основных функций — находить информацию в таблицах. Нужная информация обычно содержится в нескольких таблицах, но, если использовать запросы, ее можно просматривать в одной. Кроме того, запросы дают возможность фильтровать данные (для этого задаются критерии поиска), чтобы отображались только нужные записи.
Используются и так называемые «обновляемые» запросы, которые дают возможность редактировать данные, найденные в основных таблицах. При работе с обновляемым запросом помните, что правки вносятся в основные таблицы, а не только в таблицу запроса.
Есть два основных вида запросов: запросы на выборку и на изменение. Запрос на выборку только находит данные и предоставляет к ним доступ. Результаты такого запроса можно просмотреть на экране, распечатать или скопировать в буфер обмена, а также использовать в качестве источника записей для формы или отчета.
С помощью запроса на изменение, как видно из названия, можно выполнять определенные операции с найденными данными: создавать таблицы, добавлять информацию в уже существующие таблицы, а также обновлять или удалять данные.
Дополнительные сведения о запросах см. в статье Знакомство с запросами.
Макросы
Макросы в Access — это нечто вроде упрощенного языка программирования, с помощью которого можно сделать базу данных более функциональной. Например, если к кнопке команды в форме добавить макрос, то он будет запускаться всякий раз при нажатии этой кнопки. Макросы состоят из команд, с помощью которых выполняются определенные задачи: открываются отчеты, выполняются запросы, закрывается база данных и т. д. Используя макросы, можно автоматизировать большинство операций, которые в базе данных вы делаете вручную, и, таким образом, значительно сэкономить время.
Дополнительные сведения о макросах см. в статье Общие сведения о программировании в Access.
Модули
Подобно макросам, модули — это объекты, с помощью которых базу данных можно сделать более функциональной. Но если макросы в Access составляются путем выбора из списка макрокоманд, модули создаются на языке Visual Basic для приложений (VBA). Модули представляют собой наборы описаний, инструкций и процедур. Существуют модули класса и стандартные модули. Модули класса связаны с конкретными формами или отчетами и обычно включают в себя процедуры, которые работают только с этими формами или отчетами. В стандартных модулях содержатся общие процедуры, не связанные ни с каким объектом. Стандартные модули, в отличие от модулей класса, перечисляются в списке Модули в области навигации.
Дополнительные сведения о модулях см. в статье Общие сведения о программировании в Access.
Объект Module (Access) Module object (Access)
Объект module ссылается на стандартный модуль или модуль класса. A Module object refers to a standard module or a class module.
Комментарии Remarks
Microsoft Access включает модули классов, которые не связаны ни с одним объектом, а модулями форм и модулями отчетов, связанными с формой или отчетом. Microsoft Access includes class modules that are not associated with any object, and form modules and report modules, which are associated with a form or report.
Чтобы определить, представляет ли объект module стандартный модуль или модуль класса из кода, проверьте свойство Type объекта module . To determine whether a Module object represents a standard module or a class module from code, check the Module object’s Type property.
Коллекция modules содержит все открытые объекты module , независимо от их типа. The Modules collection contains all open Module objects, regardless of their type. Модули в коллекции modules могут быть скомпилированы или раскомпилированы. Modules in the Modules collection can be compiled or uncompiled.
Чтобы возвратить ссылку на определенный стандартный объект или модуль класса в коллекции modules , используйте любую из указанных ниже синтаксических форм. To return a reference to a particular standard or class Module object in the Modules collection, use any of the following syntax forms.
Синтаксис Syntax | Описание Description |
---|---|
Модули! ModuleName Modules!modulename | Аргумент ModuleName — это имя объекта module . The modulename argument is the name of the Module object. |
Модули («ModuleName«) Modules(«modulename«) | Аргумент ModuleName — это имя объекта module . The modulename argument is the name of the Module object. |
Модули (index) Modules(index) | Аргумент index — это числовое положение объекта в коллекции. The index argument is the numeric position of the object within the collection. |
В следующем примере возвращается ссылка на объект стандартного модуля и назначается переменной объекта. The following example returns a reference to a standard Module object and assigns it to an object variable.
Обратите внимание, что квадратные скобки, в которых заключено имя объекта module , необходимы только в том случае, если имя объекта module содержит пробелы. Note that the brackets enclosing the name of the Module object are necessary only if the name of the Module object includes spaces.
В следующем примере возвращается ссылка на объект модуля формы и назначается объектной переменной. The next example returns a reference to a form Module object and assigns it to an object variable.
Чтобы сослаться на определенную форму или модуль отчета, можно также использовать свойство module объекта формы или отчета . To refer to a specific form or report module, you can also use the Form or Report object’s Module property.
В следующем примере также возвращается ссылка на объект module , связанный с формой Employees , и назначается переменной объекта. The following example also returns a reference to the Module object associated with an Employees form and assigns it to an object variable.
После возвращения ссылки на объект module можно задать или прочитать его свойства и применить его методы. After you’ve returned a reference to a Module object, you can set or read its properties and apply its methods.
Методы Methods
Свойства Properties
См. также See also
Поддержка и обратная связь Support and feedback
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.