26.12.2014 Views

Управление базами данных Access на VBA - eDrive

Управление базами данных Access на VBA - eDrive

Управление базами данных Access на VBA - eDrive

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

7<br />

• Parent!имяПоляГлавнойФормы<br />

Ни TableDef, ни QueryDef не содержат <strong>данных</strong>. Для доступа к данным<br />

нужны <strong>на</strong>боры записей — объекты RecordSet. В модели DAO присутствуют<br />

четыре типа таких объектов. Тип Table представляет <strong>на</strong>бор записей одной<br />

таблицы открытого файла базы <strong>данных</strong>. Он не обрабатывает связанные<br />

таблицы и таблицы ODBC и обслуживает только рабочие области Jet. Тип<br />

Dynaset представляет ди<strong>на</strong>мический <strong>на</strong>бор записей таблицы открытой базы<br />

<strong>данных</strong>, связанной таблицы, результата выполнения запроса или оператора<br />

SQL SELECT. Он состоит из ссылок, поэтому обрабатывается медленнее,<br />

чем Table и иногда не обновляется, но охватывает более широкую область<br />

<strong>данных</strong>. Тип Snapshot представляет статическую копию таблицы, запроса или<br />

оператора SQL SELECT, удобную для выборки <strong>данных</strong> и создания отчетов.<br />

Forward-Only представляет а<strong>на</strong>логичную копию, пред<strong>на</strong>з<strong>на</strong>ченную для<br />

единовременного просмотра <strong>данных</strong>. Синтаксис:<br />

базаДанных.OpenRecordSet (Источник [,Тип, Параметры, Блокировка])<br />

Здесь Источник — это строка с именем таблицы, запроса или текстом SQL,<br />

далее следует тип объекта RecordSet, по умолчанию Table для таблиц и<br />

Dynaset для запросов и связанных таблиц. Любой объект RecordSet<br />

существует только в рамках своей процедуры, а затем уничтожается. Его<br />

можно закрыть раньше методом Close.<br />

Примеры<br />

Sub РабочаяОбласть ()<br />

Set область = DBEngine.Workspaces (0)<br />

Set новаяБазаДанных = _<br />

область.CreateDatabase ("Школьники.mdb", dbLangGeneral)<br />

Set другаяБазаДанных = _<br />

область.OpenDatabase ("Транспорт")<br />

MsgBox другаяБазаДанных.Name & Chr (13) & _<br />

новаяБазаДанных.Name & Chr (13) & CurrentDb.Name<br />

End Sub<br />

Sub БазыДанных ()<br />

Set текущаяБазаДанных = CurrentDb<br />

Set новаяБазаДанных = CreateDatabase ("Студенты.mdb", dbLangCyrillic)<br />

Set другаяБазаДанных = OpenDatabase ("Пользователи.mdb")<br />

MsgBox другаяБазаДанных.Name & Chr (13) & _<br />

новаяБазаДанных.Name & Chr (13) & текущаяБазаДанных.Name<br />

End Sub<br />

Sub НаборыЗаписейDAO ()<br />

Set tdf1 = CurrentDb.OpenRecordset ("Сотрудники", dbOpenDynaset)<br />

Set tdf2 = CurrentDb.OpenRecordset ("Категории")

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!