Вам не нужны связанные таблицы вообще. Существует два подхода к использованию данных из разных MDB, которые можно использовать без связанной таблицы. Во-первых, используйте «IN 'c: \ MyDBs \ Access.mdb'» в предложении FROM вашего SQL. Один из ваших сохраненных запросов будет выглядеть так:
SELECT MyTable.*
FROM MyTable IN 'c:\MyDBs\Access.mdb'
и другой сохраненный запрос будет:
SELECT OtherTable.*
FROM OtherTable IN 'c:\MyDBs\Other.mdb'
Затем можно сохранить эти запросы, а затем использовать сохраненные запросы для объединения двух таблиц.
Кроме того, вы можете управлять всем этим в одном операторе SQL, указав путь к исходному MDB для каждой таблицы в предложении FROM, таким образом:
SELECT MyTable.ID, OtherTable.OtherField
FROM [c:\MyDBs\Access.mdb].MyTable
INNER JOIN [c:\MyDBs\Other.mdb].OtherTable ON MyTable.ID = OtherTable.ID
Имейте в виду одну вещь, хотя:
Оптимизатор запросов Jet не обязательно сможет использовать индексы из этих таблиц для объединения (будет ли он использовать их для критериев по отдельным полям, это другой вопрос), поэтому это может быть очень медленным (в моих тестах это не так, но я не использую большие наборы данных для тестирования). Но эта проблема производительности относится и к связанным таблицам.