Обновление связей с прилинкованными таблицами
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Обновление связей с прилинкованными таблицами... Expand / Collapse
Автор
Сообщение
23.10.2006 10:07
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 23.10.2006 16:18
Сообщ.: 70, Visits: 704
Люди знающие, подскажите! Имеются прилинкованные таблицы. Имена внешних файлов не меняются, а пути (каталоги) меняются. Как программно изменить путь к прилинкованному файлу и обновить связь?
Сообщ. #906225
23.10.2006 11:20
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.07.2008 10:37
Сообщ.: 236, Visits: 1 734
Наверное единственный выход в такой ситуации заново линковать эти таблицы с новым месторасположением, предварительно удалив старые.

Что бы сделать програмно см. справку по TransferDatabase.

Сообщ. #906241
23.10.2006 12:30
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2008 19:04
Сообщ.: 328, Visits: 1 857
Dim MDB As Database, MT As TableDef, NamTab As String

Set MDB = CurrentDb
NamTab="Имя_прилинкованной таблицы"

' Удаляем прилинкованную таблицу

On Error Resume Next
MDB.TableDefs.Delete NamTab
On Error GoTo 0

' Прилинковываем таблицу в предположении, что прилинковання
' таблица имеет такое же имя, как и в родной базе

Set MT = MDB.CreateTableDef(NamTab)
MT.Connect = ";DATABASE=" & Полный_путь_к_базе_где_таблица
MT.SourceTableName = NamTab
MDB.TableDefs.Append MT
Сообщ. #906251
23.10.2006 15:10
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 23.10.2006 16:18
Сообщ.: 70, Visits: 704
Удаление проходит без проблем. А вот на строке

Set MT = MDB.CreateTableDef(NamTab)
MT.Connect = "ODBC;DSN=Paradox Dos;DATABASE=Q:\CE2\fkl.db"
MT.SourceTableName = NamTab
MDB.TableDefs.Append MT

идет спотыкание... Я прилинковываюсь к таблице Paradox. Имя файла и наименование прилинкованной таблицы различны...

Сообщ. #906283
23.10.2006 15:33
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2008 19:04
Сообщ.: 328, Visits: 1 857
Тип базы, к которой линкуемся, не был указан, поэтому, по умолчанию, я принял mdb.
Для Paradox привожу пример из Help

В следующем примере в указанной базе данных создается объект TableDef.
Затем задаются значения его свойств Connect и SourceTableName и объект
добавляется в семейство TableDefs.

Sub ConnectSource()
Dim dbs As Database, tdf As TableDef

' Возвращает ссылку на текущую базу данных.
Set dbs = CurrentDb
' Создает новый объект TableDef.
Set tdf = dbs.CreateTableDef("АвторPDX")
' Устанавливает связь с таблицей Paradox «Авторы» в базе данных C:\PDX\Публикации.
tdf.Connect = "Paradox 4.X;Database=C:\PDX\Публикации"
tdf.SourceTableName = "Авторы"
dbs.TableDefs.Append tdf
Set dbs = Nothing
End Sub

Сообщ. #906285
23.10.2006 16:21
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 23.10.2006 16:18
Сообщ.: 70, Visits: 704
Все зарабоотало, спасибо! Ошибка была в том, что я указывал имя файла и расширение при указании самой базы данных. Нужно было прописать без имени файла

MT.Connect = "ODBC;DSN=Paradox Dos;DATABASE=Q:\CE2"

а имя файла указать в 

MT.SourceTableName = "fkl"

без расширения.

Сообщ. #906290
05.04.2007 23:46
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 07.04.2007 17:03
Сообщ.: 2, Visits: 3
А как сделать для текстовой к примеру "file.txt" таблице, с сохраненой спецификацией
Сообщ. #912286
05.04.2007 23:47
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 07.04.2007 17:03
Сообщ.: 2, Visits: 3
да забыл добавить акссес-97
Сообщ. #912287
06.04.2007 12:29
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being