Для начала нам понадобится таблица Tables с полями NmTbl, tp, Path. Последнее поле играет чисто информативную роль и необязательно. Эта таблица ЛОКАЛЬНАЯ для клиентского приложения.
Теперь в сделанную таблицу вбиваем все прилинкованные таблицы (их названия). В поле tp вбиваем цифирь, которая будет отличать таблицы прилинкованные из разных баз. Т.е., если храните справочнике в одной базе, а данные в другой, то tp у них должен быть разный.
Теперь каждый, как может, иницирует вбивку пути к данным. Я храню путь двумя путями: 1) в файле INI, 2) в локальной таблице Properties, которую сам создал и храню в ней всякие мелочи, характерные только для данной версии клиента.
Далее, где путь пользователь вбивает, ставим кнопку "Присоединить" и на нее вешаем данную функцию. Не забываем только, что для каждой базы (справочники, данные, ...) своя кнопка и свой параметр tp.
Public Function ConnToDbBase(tp As Long, Path As String)
Dim tb As TableDef
Dim qConnect As String
Dim r As Recordset
Dim sql As String
Dim NmTb As String
sql = "select * from Tables where Tp=" & tp
Set r = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
If r.EOF And r.BOF Then Exit Function
r.MoveFirst
While Not r.EOF
NmTb = r.Fields("NmTbl")
For Each tb In CurrentDb.TableDefs
qConnect = Trim(Nz(tb.Connect, ""))
If qConnect = "" Then
Else
If tb.Name = NmTb Then
tb.Connect = ";DATABASE=" & Path
tb.RefreshLink
Exit For
End If
End If
Next tb
r.MoveNext
Wend
r.Close
Set r = Nothing
End Function
Если что-то осталось непонятным, пишите в форум.
Примечание: данная прилинковка работает только для таблиц из mdb-файлов. Для всяких там DBF и т.п. нужен другой Connect.
Ссылки по теме