MS Access: как сжать текущую базу данных в VBA - PullRequest
18 голосов
/ 22 сентября 2009

Довольно простой вопрос, я знаю.

Ответы [ 13 ]

0 голосов
/ 23 сентября 2009

Также есть надстройка Майкла Каплана SOON («Заткнись, открой новый») . Тебе придется это зацепить, но это один из способов сделать это.

Не могу сказать, что у меня было много причин когда-либо хотеть делать это программно, поскольку я программирую для конечных пользователей, и они никогда не используют ничего, кроме внешнего интерфейса в пользовательском интерфейсе Access, и нет причина регулярно уплотнять правильно спроектированную переднюю часть.

0 голосов
/ 22 сентября 2009

Я сделал это много лет назад в 2003 или, возможно, в 97, да!

Если я вспоминаю, вам нужно использовать одну из вышеуказанных подкоманд, привязанную к таймеру. Вы не можете работать с БД при открытых соединениях или формах.

Итак, вы делаете что-то с закрытием всех форм и запускаете таймер как последний метод выполнения. (который, в свою очередь, вызовет компактную операцию, когда все закроется)

Если бы вы не поняли это, я мог бы покопаться в моих архивах и вытащить это.

0 голосов
/ 22 сентября 2009

Проверьте это решение VBA Compact Current Database .

В основном это говорит, что это должно работать

Public Sub CompactDB() 
    CommandBars("Menu Bar").Controls("Tools").Controls ("Database utilities"). _
    Controls("Compact and repair database...").accDoDefaultAction 
End Sub 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...