Перелинковка таблиц

YuriZhitnik
Дата: 04.03.2008 18:18:36
Добрый вечер, всем.
Access 2003 SP3

Использую след. код для прилинковки таблиц из разных баз в зависимости от имени файла-клиента (Sales.mde или Russia-Client.mde). Происходит следующее, если клиент прилинковался к любой из баз, то линковка для другого имени клиента не происходит. Может кто подскажет как отлинковать уже прилинкованные таблицы или более подходящий способ линковки.

'
    On Error Resume Next
    '
    Dim sBase As String
    Dim Base1 As Integer
    Dim Base2 As Integer
    Dim dbs As Database, tdf As TableDef
    '
    Base1 = InStr(CurrentDb.Name, "Russia-Client.mde")
    Base2 = InStr(CurrentDb.Name, "Sales.mde")
    If Base1 <> 0 Then
        sBase = "\\server1\рабочиебазы$\Russia-Clients.mdb"
    ElseIf Base2 <> 0 Then
        sBase = "\\server1\рабочиебазы$\SalesDB.mdb"
    ElseIf Base1 = 0 And Base2 = 0 Then
        MsgBox "Не найдена база данных.", vbCritical + vbOKOnly, "Линковка базы."
        Exit Sub
    End If
    '
    Set dbs = CurrentDb
    Set tdf = dbs.CreateTableDef("Сотрудники")
    tdf.Connect = ";Database=" & sBase
    tdf.SourceTableName = "Сотрудники"
    dbs.TableDefs.Append tdf
    Set dbs = Nothing
    '
    Set dbs = CurrentDb
    Set tdf = dbs.CreateTableDef("Main")
    tdf.Connect = ";Database=" & sBase
    tdf.SourceTableName = "Main"
    dbs.TableDefs.Append tdf
    Set dbs = Nothing
    '
    Set dbs = CurrentDb
    Set tdf = dbs.CreateTableDef("Relation")
    tdf.Connect = ";Database=" & sBase
    tdf.SourceTableName = "Relation"
    dbs.TableDefs.Append tdf
    Set dbs = Nothing
    '
    Base1 = 0
    Base2 = 0
    '
Abrakadabra
Дата: 04.03.2008 18:53:06
YuriZhitnik
Может кто подскажет как отлинковать '[/src]


может так?:
DoCmd.DeleteObject acTable, "ИмяТаблицы"

а привязать через DoCmd.TransferDatabase ?
Анатолий ( Киев )
Дата: 04.03.2008 19:16:49
А какое сообщение вылетает?
В вашем коде вы создаете новые таблицы, не удалив одноименные старые?
Достаточно изменить св-во "Connection" во всех связанных таблицах и .RefreshLink.
YuriZhitnik
Дата: 04.03.2008 19:24:22
Спасибо, подошли оба варианта.
YuriZhitnik
Дата: 04.03.2008 19:26:40
Анатолий ( Киев )
А какое сообщение вылетает?
В вашем коде вы создаете новые таблицы, не удалив одноименные старые?
Достаточно изменить св-во "Connection" во всех связанных таблицах и .RefreshLink.


Всмысле, изменить своство "Connection"?