Эта часть могла ввести вас в заблуждение:
ssql = "select [AgencyCode] from tableimport"
CurrentDb.Execute ssql
Выполнить требуется запрос «действие» (INSERT, DELETE, UPDATE или SELECT INTO). Когда вы даете Выполнить простой (возвращающий строку) запрос SELECT, вы всегда получите ошибку # 3065 «Невозможно выполнить запрос выбора». Это не значит, что с вашим утверждением SELECT было что-то не так. Проверьте свой оператор SELECT, вставив его в SQL-представление нового запроса.
Вы показали два варианта [AgencyCode] ... один с другим, а другой без пробела между агентством и кодом. Что это?
Я думаю, что у вашего исходного оператора INSERT была лишняя пара скобок, которые не нужны. Попробуйте это так:
insert into accounts_changes
select *
from Accounts
where [Agency Code] in (
select [Agency Code] from tableimport)
Если это по-прежнему не удается, убедитесь, что у вас одинаковое количество полей с одинаковыми именами полей и типами данных как в Accounts, так и account_changes. Если поля в этих двух таблицах не совпадают точно, перечислите поля явно, как показывал @pcent.