Тип данных 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
'устанавливаем свойства
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.