Здравствуйте. Пытаюсь через 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. |
Конец цитаты.
Если так и должно быть, то подскажите, пожалуйста, что делать дальше?
Это нормально? По "второму кругу" создавать столбцы, ключи, индексы???
Ничего не понимаю...