Ограничение на ODBC очень мешает. Вы даже не представляете, возможно,
насколько, потому что и в Access, и, если не ошибаюсь, в самом MS SQL можно прямо через SQL делать выборку во внешнюю таблицу:
SELECT * INTO [ODBC;DSN=myODBC].my_table FROM my_table
Перенося таблицу целиком в один запрос.
Хотя, можно, наверное, и без ODBC, через OLE DB:
SELECT *
FROM OpenRowset('Microsoft.Jet.OLEDB.4.0',
'c:\northwind.mdb';'admin'; 'password',
'SELECT CustomerID, CompanyName
FROM Customers
WHERE Region = ''WA'' ')
©
MSDN: Using Pass-Through Queries as Tables
См.
Distributed Queries и ключевые слова, начинающиеся на OPEN (
OPENDATASOURCE,
OPENQUERY,
OPENROWSET).