Не могли бы вы попробовать что-то вроде:
Set rst = db.OpenRecordset(mQuery, dbOpenSnapshot, dbSQLPassThrough)
Это просто отправило бы дословно запрос в базу данных Oracle.
В документации Access для OpenRecordset
вы найдете эту заметку:
Если вы открываете набор записей в рабочей области Microsoft Access и не указываете тип, OpenRecordset создает набор записей табличного типа.
Это может быть источником ошибки, которую вы получаете.
Как правило, я бы рекомендовал всегда указывать в ваших параметрах OpenRecordset
: поведение по умолчанию не всегда согласовано и может вызывать странные ошибки.
Я не уверен в вашем дизайне, но один способ немного упростить вам задачу - это просто создать связанные таблицы в Access.
В этом случае вы сможете писать запросы к вашей таблице INTERFACE.Products
Oracle, как если бы вы были локальной таблицей Products
.
Это также избавит вас от необходимости самостоятельно управлять соединениями.