Ответ 1
Они не маскируют ошибки. DoCmd.SetWarnings маскирует ошибки и является системным, не ограничиваясь единственным используемым вами приложением. DoCmd.SetWarnings False
без соответствующего DoCmd.SetWarnings True
будет означать, что запросы действий будут выполняться без каких-либо подсказок в любом приложении Access на ПК.
Выполнение делает броски предупреждений, необходимые вам предупреждения, такие как запрос не удалось выполнить, но не дает предупреждений, которые вам могут не понадобиться, например "Вы уверены, что хотите запустить этот запрос".
В этом потоке Аллен Браун, Access MVP, говорит, что он не использует Set Warnings.
Как, в общем, я бы рекомендовал использовать экземпляр CurrentDB, так как это позволит вам вернуть число записей, среди прочего, так:
Set db = CurrentDB
db.Execute sSQL, dbFailOnError