Программирование в ACCESS 2000, страница 5

<catalog>.Create <connectionString>.                                                                     -|

При выполнении метода создается и открывается новый объект Catalog, который ; описывается строкой соединения <connectionString>. При этом так же, как и при использовании DАО, можно явно указать порядок символов, который будет использоваться в операциях сравнения и сортировки в создаваемой базе данных. Для этого применяется параметр Locale Identifier строки соединения. В листинге 5.7 приводятся примеры создания новой базы данных Access.

Листинг 5.7. Создание базы данных (ADO)

Dim cat  As  New ADOX.Catalog

Dim catNewDB As  New ADOX.Catalog

'создаем новый файл базы данных Access  и устанавливаем

'с  ним соединение

cat.Create   "Provider=Microsoft.Jet.OLEDB.4.0;  _

Data Source=c:\new.mdb"

'создаем новый файл базы данных Access и определяем 'порядок сортировки

catNewDB.Create "Provider=Microsoft.Jet.OLEDB.4.0;" &_

       "Locale Identifier=1036;Data Source= c:\new.mdb"

ВНИМАНИЕ      Библиотека объектов ADOX не подключается автоматически во время установки Microsoft Access 2002. Вы должны установить ссылку на эту библиотеку из диалогового окна References (Ссылки) редактора VBA .

Диалоговое окно со всеми подключенными библиотеками ADO показано на рис. 5.2.

Доступ к таблицам базы данных Access

После установки соединения с источником данных обеспечивается доступ ко bccn объектам этой базы данных. Основными объектами, в базе данных Access явля ются таблицы. Все таблицы базы данных Access, включая присоединенные, скры тые и системные, содержатся в семействе TableDefs объектной модели ОАО. Тш таблицы определяется значением свойства Attributes объекта TableDef. В листин ге 5.8 приводится пример процедуры, которая печатает имена и типы всех таб лиц в базе данных Библиотека.mdb.                                             !

Листинг 5.8. Печать объектов семейства TableDefs (DAO)

Sub PrintTablesO

Dim ws As Workspace, db As Database, td As TableDef

'выбираем рабочую область

Set ws = DBEngine.Workspaces(O)

'открываем базу данных

Set db = ws .OpenDatabase ("С: \Библиотека.гг^Ь")

For Each td in db.TableDefs

Debug.Print td.Name & vbTab & td.Attributes

Next td

db.Close                    ' Закрываем базу данных

Set db = Nothing ' Очищаем объектные

Setws= Nothing    ' переменные

EndSub

Семейство TableDefs является стандартным семейством объекта Database, поэтому к его объектам можно обращаться с помощью сокращенной ссылки, например:

Dim db As Database, strType As String, strName As String

Set db = CurrentDB

strType = db!Авторы.Connect

strName = db!Авторы.SourceTableName

В приведенном примере переменной strType присваивается значение свойства Connect присоединенной таблицы Авторы, определяющее тип и местонахождение таблицы, а переменной strName — значение свойства SourceTableName, которое содержит имя присоединенной таблицы в источнике1. В объектной модели ADOX семейство Tables содержит ссылки на все таблицы л представления (запросы на выборку) базы данных. В семейство входят также хылки на присоединенные и системные таблицы. Определить тип таблицы можно тутем проверки свойства Туре объекта Table. В табл. 5.2 приведены строковые значения, которые возвращаются при проверке свойства Туре с помощью Microsoft Jet 4.0 OLE DB Provider. Таким образом, семейство Tables обеспечивает программный  доступ к любой таблице и запросу на выборку базы данных.

Таблица 5.2. Значения свойства Туре объекта Table

Тип

Описание

Access Table

Системная таблица Access

Link

Связанная таблица из источника данных, отличного от ODBC

Pass-Through

Связанная таблица из источника данных ODBC                                                    

System Table

Системная таблица Microsoft Jet                                                                    

Table                   

Обычная таблица

View

Запрос без параметров, возвращающий набор записей (запрос на выборку)