I соединение кэшируется Access в любом случае.
Если вы коснетесь или откроете любую связанную таблицу, то соединение станет активным и снова будет использовано Access.
В общемесли запрос относится к одной таблице, то есть небольшая причина не просто кодировать для связанной таблицы.
Например:
Dim rst As DAO.Recordset
Dim strSQL As String
strSQL = "select * from tblInvoices where invoiceNum = 13355"
Set rst = CurrentDb.OpenRecordset(strSQL)
Если вы используете проходной запрос, то этоработает хорошо:
Sub Test555()
Dim rst As DAO.Recordset
With CurrentDb.QueryDefs("qryPass")
.SQL = "select * from tblInvoices where invoiceNum = 13355"
Set rst = .OpenRecordset
End With
End Sub
Причина вышеизложенного заключается в том, что вы, таким образом, не связываетесь со строками соединения в своем коде и не должны беспокоиться о них.
Просто убедитесь, что вы также перебираете код ссылкиповторно связывает любой сквозной запрос.