Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаборатор access.doc
Скачиваний:
41
Добавлен:
02.02.2015
Размер:
33 Мб
Скачать
☆

1.8.Семейства, объекты, свойства и методы.

Microsift Access включает в себя 2 основных системы:

─ ядро приложения, которое обеспечивает конечный пользовательский интерфейс приложения;

─ ядро БД Microsoft Jet, которое управляет хранением данных и определений всех объектов Вашей БД.

Ядро приложения формирует и поддерживает семейство форм (все открытые формы) и семейство отчетов (открытых) и создает 2 специальных объекта: Приложение(Application) и (Экран)Screen.

Объект Application обладает тремя свойствами:

─ CurrentObjectName (имя текущего объекта);

─ CurrrentObjectType (тип текущего объекта);

─ MenuBar (строка меню).

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

CurrentObjectType с внутренними константами A_TABLE, A_QUERY, A_FORM, A_REPORT, A_MACRO и A_MODULE. Вы можете присвоить свойству MenuBar имя макроса строки меню, чтобы установить для окна Базы

Данных пользовательскую строку меню.

ОбъектScreen (Экран) обладает четырьмя полезными свойствами:

ActiveControl (Активный Элемент управления);

ActiveForm (Активная Форма);

ActiveReport (Активный Отчет);

PreviousControl (Предыдущий Элемент управления).

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

Ядро базы данных Microsoft Jet осуществляет управление всеми объектами в иерархической структуре семейств, объектов и свойств. При открытии базы данных в Microsoft Access, ядро базы данных Microsoft Jet сначала устанавливает семейство Workspaces (Сеансы работы и объект Workspace (Сеанс работы) по умолчанию. Если ваша база данных защищена, Access попросит вас ввести пароль и идентификатор пользователя, и тогда в объекте Workspace, установленном по умолчанию, ядро базы данных Microsoft Jet сможет создать объект User (Пользователь) и объект Group (Группа). Если открываемая база данных не защищена, ядро базы данных Microsoft Jet создает принятые по умолчанию объекты: объект типа User с именем Admin (Администратор) и объект типа Group с тем же именем Admin. Наконец, ядро базы данных Microsoft Jet создает для сеанса работы, установленного по умолчанию, объект Database (База данных). Ядро базы данных Microsoft Jet использует информацию о текущем объекте типа User и/или Group для того, чтобы определить, имеете ли вы право доступа к любому из объектов базы данных.

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

пользователь выберет следующее действие с базой данных из доступных в интерфейсе.

Вы можете использовать процедуры Access Basic, которые вызываются макросом Autoexec или запускаются событием формы или отчета для того, чтобы создать дополнительные объекты типа Database в семействе Databases, открывая дополнительные файлы с расширением MDB.

Каждый открытый объект типа Database имеет семейство Containers (Контейнеры), и это семейство используется ядром базы данных Microsoft Jet для хранения (с использованием семейства Documents) определений всех пользовательских таблиц, запросов, форм, отчетов, макросов и модулей. Семейство TableDefs (Таблицы) можно использовать для того, чтобы посмотреть и модифицировать существующие таблицы. Вы можете также создать новые объекты типа TableDef (Таблица) внутри этой семейства. Аналогично, в семейство Relations (Отношения) входят объекты типа Relation (Отношение), которые определяют, как таблицы связаны между собой и какие режимы обеспечения целостности данных применяются к таблицам. Семейство QueryDefs (Запросы) включает в себя объекты типа QueryDef (Запрос), которые содержат определения запросов базы данных. Вы можете модифицировать существующие запросы либо создать новые. Наконец, семейство Recordsets (Наборы записей) включает в себя соответствующие объекты типа Recordset (Набор записей) для каждого открытого набора записей в базе данных.

1.10 Ссылки на семейства, объекты и свойства.

Существует три варианта синтаксиса ссылок на объект внутри семейства:

_ ИмяСемейства[ИмяОбъекта].

_ ИмяСемейства("ИмяОбъекта").

Например, Forms("'MyForm").

_ ИмяСемейства(ОттсительныйНомерОбьекта).

Access нумерует объекты внутри семейства от нуля (0) до ИмяСемейства.Соunt 1. Например, вы можете определить число открытых форм, выяснив значение свойства Count (Счетчик) семейства форм: Forms.Count.

Вы можете сделать ссылку на вторую открытую форму в семействе, написав

Forms(1).

Если вы хотите выяснить, как много объектов типа Workspace существует в семействе Workspaces, вам придется использовать ссылку на свойство Count семейства Workspaces. Например, вы можете ссылаться на свойство Count таким образом:

DBEngine. Workspaces. Count

Используя третий метод ссылок на объект, который описан выше, вы можете сослаться на объект Workspace, назначаемый по умолчанию, таким образом:

DBEngine. Workspaces ( 0 )

Аналогично, ссылайтесь на текущую открытую базу данных так:

DBEngine.Workspaces (0). Databases (0)

В связи с тем, что семейство Databases ─ это семейство, назначаемое по умолчанию для семейства Workspaces, вы можете задать ссылку на текущую открытую базу данных следующим образом:

DBEngine. Workspaces ( 0 ) ( 0 )

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

Чтобы упростить конструкции имен, используйте объектные переменные:

Set <имя-переменной> = <ссылка-на-объект>

Сначала Вы должны объявить <имя переменной> в инсрукциях

Dim,Global или Static.

Примеры:

Чтобы создать переменную, ссылающуюся на текущую базу данных,

введите:

Dim dbMyDB As Database Set dbMyDB = DBEngine.Workspaces(0). Databases (0)

Чтобы создать переменную, ссылающуюся на таблицу "Преподаватели" в текущей базе данных, используя только что созданную переменную dbMyDB, введите:

Dim tblMyTable As TableDef Set tblMyTable = dbMyDB! [Преподаватели]

У вас нет необходимости явно ссылаться на семейство TableDefs базы данных (как dbMyDB.TableDefs![Преподаватели]), так как TableDefs ─ это семейство базы данных, назначаемое по умолчанию.