Si ves este error al abrir una consulta desde código VBA, y no le encuentras explicación, fíjate en la consulta. Seguramente hace referencia a un campo de un formulario (Forms!MyForm!MyCampo).
Bien, el formulario MyForm está abierto, y el campo MyCampo existe y tiene un valor. Ademas, si abres la consulta directamente, funciona bien.
El problema es que el gestor de consultas interpreta bien el parámetro "Forms!MyForm!MyCampo", pero no así al abrirla como Recordset desde VBA.
Solución:
Cambiar
Forms!MyForm!MyCampo (o bien Formularios!MyForm!MyCampo)
por
Eval("forms!myform!mycampo") (no escribas
formularios, sino forms)