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

Тип данных Access

ОАО

ADOX

Числовой (размер поля — байт)

dbByte

adllnsignedTinylnt

Числовой (размер поля — целое)

dblnteger

adSmalLInt

Числовой или счетчик

dbLong

adSmalllnt

(размер поля — длинное целое)

Поле объекта OLE

dbLongBinary

adLongVarBinary

Поле MEMO

dbMemo

adLongVarWChar

Текстовый

dbText

adVarWChar

Гиперссылка

dbMemo, и свойство Attributes должно иметь значение dbHyperlinkField

adLongVarWChar, и свойство Column должно иметь значение JetOLEDB:Hyperlink

Следующие два примера (листинги 5.16 и 5.17) демонстрируют, как выполняется присоединение таблицы, размещенной в другой базе данных Access. Метод Append в ADOX позволяет объединить создание объекта и добавление его в семейство. Этой возможностью мы и воспользовались в данном примере.

Листинг 5.16. Присоединение внешних таблиц (DAO)

Sub CreateLinkedAccessTableQ

Dim db As  Database,   tdf As TableDef

Set db = CurrentDB

'создаем новую таблицу

Set tdf = db.CreateTableDef ("Издания")

'устанавливаем свойства  таблицы

tdf.Connect  =  " ;DATABASE=C:\Библиотека(данные).mdb"

tdf.SourceTableName =  "Издания"                                          

'добавляем таблицу  в  семейство

TableDefs db.TableDefs.Append  tdf

End   Sub

В модели ADO, чтобы указать путь к внешнему источнику данных и имя присоединяемой таблицы, нужно установить значения двух свойств семейства Properties объекта Table: Jet OLEDB:Link Datasource и Jet OLEDB:Remote Table Name. Кроме того, свойству Jet OLEDB:Create Link должно 'быть присвоено значение True.

ПРИМЕЧАНИЕ Объекты Connection, Command, Recordset и Field и коллекция Parameters модели —^ADODB, а также объекты Table, Index и Column модели ADOX имеют семейство Properties. Каждое такое семейство включает стандартные (встроенные) свойства соответствующего объекта и дополнительные (динамические) свойства, которые зависят от используемого провайдера OLE DB, и поэтому называются свойствами провайдера. Эти динамические свойства не всегда присутствуют для объекта, хотя для всех объектов одного типа от одного провайдера они будут одинаковы. Ссылаться на эти свойства можно только через семейство Properties. Свойства провайдера можно отличить от стандартных свойств по префиксу, который присутствует в их именах. Например, объект Connection не имеет стандартного свойства, позволяющего указать файл рабочих групп (файл .mdw) для защищенной на уровне пользователей базы данных Access (файл .mdb) (в модели ОАО такое свойство есть у объекта DBEngine и называется оно SystemDB). Но объект Connection имеет свойство Jet OLEDB:System database. Это свойство входит в семейство Properties и может быть использовано для данной цели. Информацию о свойствах провайдера Microsoft Jet 4.0 OLE DB Provider можно найти в файле ADOProperties.DOC в папке ODETools\V9\Samp'les\OPG\Appenixes компакт-диска из комплекта Microsoft Office 2000 для разработчиков.

Листинг 5.17. Присоединение внешней таблицы (ADO)

Sub CreateLinkedAccessTableO

Dim cat As ADOX.Catalog

Dim  tbl  As ADOX.Table

Set  cat  = New ADOX.Catalog

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

'к  которой будем присоединять  таблицу

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

&  "Data  Source=C:\Библиотека.mdb"

Set   tbl  = New ADOX.Table

With  tbl

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

'и устанавливаем свойство ParentCatalog,   чтобы

'обеспечить доступ  к семейству  Properties

.Name =  "Издания"

Set   .ParentCatalog = cat

'устанавливаем свойства