Je kan alleen een "andere" database comprimeren via VBA . Je kan dat met deze code voor elkaar krijgen:
' comprimeren van de database naar nieuwe database
DBEngine.CompactDatabase "datbase.mdb", "gecomprimeerd.mdb"
' verwijderen "oude" database
Kill "database.mdb"
' hernoemen nieuwe database
Name "gecomprimeerd.mdb" As "database.mdb"
Wat ik zelf gedaan is het volgende:
in een database (die niet gecomprimeerd hoeft te worden) een formulier maken wat geopend wordt bij het openen van de mdb (via macro autoexec). In het formulier zet je de code in de open-gebeurtenis. Hierna laat je deze mdb sluiten. Ik laat dit op een server via de scheduler uitvoeren. Ik laat zo iedere nacht een stuk of 8 mdb's comprimeren en dat werkt prima.