Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MVBA_2000.DOC
Скачиваний:
13
Добавлен:
08.11.2019
Размер:
599.55 Кб
Скачать

3.3.4. Манипулирование в Access объектами Application

Вызов одного из методов представляет собой способ манипулирования объектом. Для объектов Application в Access существует еще два способа манипулирования: использование объекта DoCmd и применение встроенных функций или операторов.

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

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

Существуют два широко используемых представителя классов объектов Access- Forms (семейство открытых объектов Form) и Reports (семейство открытых объектов Report).

В этих семействах содержатся лишь объекты, которые были открыты при помощи оператора DoCmd:

Open тип_объекта

или его эквивалентов.

Объект Form представляет форму MS ACCESS, открытую в режиме Design(Конструктор), Form(Режим формы) или DataSheet(Режим таблицы). Объекты Form объединены в набор Forms, который входит в объект Application MS ACCESS.

Чтобы начать работу с объектом Form, необходимо открыть форму, используя метод OpenForm объекта DoCmd. При неоднократном обращении к одному и тому же объекту Form лучше объявить объектную переменную, которая будет передавать этот объект.

Объект Report представляет собой отчет MS ACCESS, открытый в режиме Design (Конструктор), Print Preview (Предварительный просмотр) или Layout Preview (Образец). Объекты Report объединяются в набор Reports, который является элементом объекта Application MS Access. Набор Reports содержит только открытые в данный момент отчеты.

Чтобы в VB можно было работать с объектом Report сначала надо открыть отчет методом OpenReport объекта DoCmd. можно получить ссылку на объект Report и присвоить ее объектной переменной.

Метод объекта DoCmd, соответствующий макрокоманде, обычно выполняет точный эквивалент макродействия. Методы объекта не возвращают значения или объекты и поэтому имеют следующий синтаксис:

DoCmd.метод аргумент1, аргумент2,...,аргументN

Существует два типа методов DoCmd, работающих с объектом Application в Access. Согласно одному из них объект нужно задавать как аргумент метода.

Например:

DoCmd.OpenReport"Customers"

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

Например:

DoCmd.Close

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

3.3.5. Объекты доступа к данным

Объекты доступа к данным предназначены для программного доступа и управления данными в локальной или удаленной базе данных, а также для программного управления самими базами данных, их объектами и стпуктурой. В Microsoft Access 2000 можно использовать две разные модели объектов для доступа к данным:

  • новую версию модели доступа к данным Microsoft DAO 3.6

  • новую модель доступа к данным Microsoft ADO 2.1

3.3.5.1. Объекты dao

Объектная модель DAO состоит из двух частей, обеспечивающих два разных метода доступа к данным: рабочая область Jet и рабочая область ODBCDirect. В одном приложении Access можно применять оба метода доступа к данным, используя преимущества каждого из них. Обычно рабочая область Jet применяется для доступа к данным, которые содержатся в базе данных Access, а рабочая область ODBCDirect используется к данным на удаленных серверах баз данных, например, Microsoft SQL Server.

Ядро базы данных Jet включает в себя файлы, необходимые для управления данными, контроля доступа к информации в базе данных и хранения объектов, принадлежащих уровню Application. Jet предусматривает встроенные программы для выполнения шести базовых функций управления базой данных:

  • Определение данных и поддержание их целостности.

  • Хранение данных.

  • Выборка данных.

  • Манипулирование данными.

  • Защита.

  • Совместное использование данных.

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

Ядро базы Microsoft Jet содержит:

а) объекты, которые можно использовать для задания структуры базы данных(TableDef, QueryDef, Field, Index, Parameter, Relation);

б) объекты для непосредственной работы с данными (Recordset);

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

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

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

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

DBEngine(0)![Студенты.mdb]

DBEngine(0).Databases("Студенты.mdb")

Для ссылки на текущую базу данных Access позволяет использовать функцию CurrentDB().

Объект TableDef обозначает хранимое определение таблицы. Эта таблица может быть базой данных Jet (локальная или базовая) или другой базы данных, связанной с базой данных Jet (связанная таблица). Объект TableDef не представляет хранимых в таблице данных. Такие данные представляют только объекты Field в совокупности Fields Recordset.

Объект Field представляет столбец данных с общим набором характеристик и типов. Объекты TableDef, Querydef, Index и Relation имеют совокупности Fields, содержащие объекты Field. В этих случаях характеристики объекта Field включают в себя спецификации поля, но не содержат данных. Эти объекты полей не имеют характеристику Value. Данные находятся в полях набора записей, которые Jet создает при открытии таблицы, выполнении запроса или оператора SQL, возвращающего записи. Объект Recordset (набор записей) имеет совокупность Fields с объектами Field. В этом случае совокупность Fields содержит поля, представляющие одну строку фактических данных в текущей записи. Для просмотра или изменения данных в текущей записи можно использовать объекты Field в Recordset. Значение Value такого объекта будет содержать данные в поле текущей записи.

Workspaces

(Workspace)

Errors

(Error)

Users

(User)

Groups

(Group)

Databases

(Database)

Groups

(Group)

Users

(User)

TableDefs

(TableDef)

QueryDefs

(QueryDef)

Recordsets

(Recordset)

Relations

(Relation)

Containers

(Container)

Fields

(Field)

Indexes

(Index)

Fields

(Field)

Parameters

(Parameter)

Fields

(Field)

Fields

(Field)

Documents

(Document)

Fields

(Field)

Рис.3.4. Модель объектов доступа к данным для рабочей области Microsoft Jet

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

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

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

Объект QueryDef представляет хранимое определение запроса (но не данных) в таблицах.

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

Объект Container. Ядро БД Jet не зависит от приложений. Для управления данными, помимо Access, его применяют несколько других приложений (Excel, Visual Basic, Visual C++). При работе с одним из этих приложений создаются специфические для приложения объекты. Ядро Jet отслеживает объекты Access с помощью совокупности Containers, в котором каждому объекту Access соответствует отдельный объект Container.

Объект Document содержит информацию о конкретном экземпляре объекта (таблицы, отношения, формы или отчеты).

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]