40000 записей в час - 10 записей в секунду. Я бы предложил создать различные таблицы и индексы, необходимые для обоих, и сначала протестировать. И пусть тестирование длится 8 часов и посмотрим, что произойдет.
Вполне возможно, что первые x-записи могут вставляться достаточно хорошо, но они становятся все медленнее и медленнее. х - это число от 10К до 1М. Медленнее и медленнее довольно субъективно и зависит от приложения. В Access я бы предложил делать компакт на регулярной основе, то есть, возможно, после 100 тыс. Записей, чтобы очистить индексы. Однако, если приложение хочет вставлять записи в течение 8 часов подряд без перерыва, тогда, очевидно, это не сработает.
Или вы можете попробовать удалить индексы, вставить записи и воссоздать индексы. Однако если пользователи хотят запрашивать данные во время вставки записей, это тоже не сработает.
Кроме того, Access может работать значительно быстрее, если база данных не используется совместно. Опять же, это может быть непрактично.
Наконец, если вы все еще не получаете приличную производительность, или даже если вы получаете, подумайте о том, чтобы пользователь установил твердотельный диск и поместил на него файл своей базы данных. SSD-накопитель 32 Гб за несколько сотен долларов отнимает у разработчиков много времени.