Remember these things about Microsoft Access (a.k.a. Jet):
1. No matter how many times you compact/repair and MDB, it will eventually become corrupt. This has been true since day 1 (1992) and Microsoft has never fixed that bug.
2. Compacting does NOT apply the internal MS Access System tables, so over time they will grow and eventually, your MDB will become corrupt. Your only avenue, if you're lucky, is to create a new, blank MDB and copy the object from the old MDB to the new blank MDB which will give you a set of new internal system tables that are as small as they will ever be.
It's not in Microsoft's financial best interests to fix these major bugs that have been in Jet/Access from the beginning because it would affect their SQL Server revenue.