Скорее всего, у вас есть некоторые условные (Iif ()) преобразования данных (CStr () или аналогичные) в исходных запросах. Access может оптимизировать отдельные запросы иначе, чем в union; иногда он оценивает условные части в очень странном порядке.
Как в следующем упрощенном случае:
Select Iif(int_fld is null, '0', CStr(int_fld)) As Something
Это может выдать «Недопустимое использование нуля» или нет - зависит от порядка оценки.
Редактировать: забыл написать правильное выражение, которое не выдает эту ошибку:
Select CStr(Iif(int_fld is null, 0, int_fld)) As Something