Вы пробовали DBEngine.RepairDatabase [my.mdb]? (который, кажется, больше не работает, даже если вы ссылаетесь на более раннюю версию)
Однако, если это происходит так часто, что вам нужно его кодировать, вероятно, у вас есть более серьезная проблема, которую вы должны решить в первую очередь.
Если вы хотите использовать отдельную утилиту, как насчет утилиты Jetcomp.exe (http://support.microsoft.com/kb/295334). Предполагается, что он «сможет восстанавливать некоторые базы данных, которые не может компактная утилита Microsoft Access и метод CompactDatabase». В этом случае все, что вам нужно сделать, это запустить внешнее приложение.
например,
Call Shell("Jetcomp.exe <arguments>")