У меня недостаточно представителей, чтобы ответить на предыдущий «ответ», но я хотел предоставить некоторую информацию, которая может быть полезна кому-то еще в отношении вопроса ОП.
Я использовалметод JRO в течение многих лет для сжатия / восстановления моих баз данных Access 2000 с VB.net.Каждый раз в голубой луне у меня есть клиент, которому удалось повредить базу данных (обычно при подключении к базе данных по сети, и они страдают от неожиданного прерывания сети).JRO (по моему опыту) работает нормально, если база данных не повреждена.Я никогда не мог понять, почему база данных МОЖЕТ быть исправлена, если я использую приложение Access для этого, но при использовании приложения MY (которое использует JRO) сжатие / восстановление всегда будет неудачным (база данных находится в нераспознанном формате).
Итак, после того, как я наткнулся на эту тему всего час назад, я добавил ссылку на DAO в свое приложение и опробовал ее способность восстанавливать поврежденную базу данных, так как только сегодня у меня был клиент, повредивший базу данных (в третий раз это случилосьпримерно через 8 лет).Угадайте, что DAO удалось восстановить базу данных, когда JRO не удалось!
ОК, так что мой опыт работы с JRO vs. DAO.Надеюсь, поможет.Вот пример кода для использования CompactDatabase
от DAO:
Dim dbCorrupt As String = "c:\CorruptedDB.mdb"
Dim dbRepaired As String = Path.Combine(Path.GetDirectoryName(dbPath), Path.GetFileNameWithoutExtension(dbPath) & "_Repaired.mdb")
Dim dao As New dao.DBEngine
dao.CompactDatabase(dbCorrupt, dbRepaired)