Связывание таблиц. ADOX

EvAnd
Дата: 21.01.2012 18:14:19
Здравствуйте. Пытаюсь через ADOX приликовать таблицы, но получается какая-то ерунда.
Создаются в итоге не таблицы, а какие-то "скелеты": только иконка в окне БД, без полей и соотв без данных. В прямом смысле одно название.
А после клика по ним в ошибке пишет про какие-то запросы... Перепробовал уже несколько процедур - результат одинаковый...
К примеру, функция с hiprog:
+
Public Sub ADOXCreateLinkTable(strFileName As String, _
                                strTblName As String, _
                                Optional strLinkTblName As String = "")
'создание связанной таблицы MS ACCESS
'strFileName - путь к БД ACCESS, в которой находится таблица
'strTblName - имя таблицы в исходной БД
'strLinkTblName - имя, под которым будет создана связанная таблица
'если strLinkTblName опущено, то создается таблица с именем strFileName
Dim adoxCat As ADOX.Catalog
Dim adoxTbl As New ADOX.Table
Dim strType As String
Set adoxCat = New ADOX.Catalog
'получаем ссылку на текущую БД
adoxCat.ActiveConnection = CurrentProject.Connection
If strLinkTblName = "" Then strLinkTblName = strTblName
With adoxTbl
    .ParentCatalog = adoxCat
    .Name = strLinkTblName 'имя создаваемой таблицы
    'путь к файлу
    .Properties("Jet OLEDB:Link Datasource").Value = strFileName
    'имя таблицы в исходном файле
    .Properties("Jet OLEDB:Remote Table Name").Value = strTblName
    .Properties("Jet OLEDB:Create Link").Value = True
End With
adoxCat.Tables.Append adoxTbl 'добавляем таблицу в БД
Set adoxCat = Nothing
Set adoxTbl = Nothing

End Sub

В другом источнике (к сожалению, не могу назвать адрес - вордовский файл...) сказано буквально следующее (так же жирным выделено и в источнике):
Для создания в Access связанной таблицы необходимо создать таблицу и не добавлять в нее поля.
Затем следует задать значения двух свойств:
- Jet OLEDB:Link Datasource
- Jet OLEDB:Remote Table Name.
Конец цитаты.

Если так и должно быть, то подскажите, пожалуйста, что делать дальше? Это нормально? По "второму кругу" создавать столбцы, ключи, индексы???
Ничего не понимаю...
osmor
Дата: 23.01.2012 09:41:46
EvAnd,
Какие таблицы линкуете?
Доступ к файлу с таблицами полный?
Файл с таблицами точно есть?
Таблица с именем указанным в
Properties("Jet OLEDB:Remote Table Name").Value - существует?
EvAnd
Дата: 23.01.2012 10:57:36
osmor, файл и таблицы есть - создаются тоже из базы (А2003). Строка подключения:
osmor
Дата: 23.01.2012 14:30:32
EvAnd,
Просто даже не знаю как объяснить вам вашу ошибку...
Посмотрите не строку
".Properties("Jet OLEDB:Link Datasource").Value = strFileName"
В ней свойству "Jet OLEDB:Link Datasource" присваивается значение из переменной strFileName
А теперь посмотрите на свой код.
ответьте на такой вопрос:
"Какому свойству Вы пытаетесь присвоить значение из переменной strFileName?"
EvAnd
Дата: 23.01.2012 21:51:52
osmor, спасибо!
With adoxTbl
    .ParentCatalog = adoxCat
    .Name = strLinkTblName 'имя создаваемой таблицы
    'путь к файлу
    .Properties("Jet OLEDB:Link Datasource").Value = gstrClsssFilePathFull
    'имя таблицы в исходном файле
    .Properties("Jet OLEDB:Remote Table Name").Value = "Region"
    .Properties("Jet OLEDB:Create Link").Value = True
End With
adoxCat.Tables.Append adoxTbl 'добавляем таблицу в БД
Много нелестных слов в свой адрес... :-(((

(Извиняюсь, а не посмотрите ещё здесь: 11942994. Ничего нельзя сделать?)
EvAnd
Дата: 23.01.2012 22:10:20
    .Properties("Jet OLEDB:Remote Table Name").Value = strLinkTblName