01 Что делает макрос
Во время вашей работы вы можете постоянно увеличивать или уменьшать количество записей и таблиц в базе данных. С течением времени, вы можете заметить, что доступ к базе данных становится все дольше. Это происходит потому, что Access не освобождает файловое пространство. Все пространство, необходимое для данных вы переместили из вашей базы данных в файл доступа. Этот макрос позволяет сжать и восстановить ваши базы данных прямо из кода.
Этот макрос имитирует действия автоматического сжатия и восстановления приложения Access. Обратите внимание, что для того, чтобы использовать этот код, необходимо установить ссылку на библиотеку объектов Microsoft Access. Для этого откройте VBA в Excel и выберите Tools➜References. Откроется диалоговое окно «References». Прокрутите вниз, пока вы найдите запись Microsoft Access XX Object Library, где XX — это ваша версия Access. Поставьте флажок рядом с записью.
02 Код макроса
Sub
SjatBazuDannihAccess()
'Шаг 1: Объявляем переменные
Dim
OriginalFile
As
String
Dim
BackupFile
As
String
Dim
TempFile
As
String
'Шаг 2: Определите пути назначения файлов базы данных
OriginalFile =
"C:\Temp\MyDatabase.accdb"
BackupFile =
"C:\Temp\MyDatabaseBackup.accdb"
TempFile =
"C:\Temp\MyDatabaseTemporary.accdb"
'Шаг 3: Сделайте резервную копию базы данных
FileCopy OriginalFile, BackupFile
'Шаг 4: Выполнить сжатие и восстановление
DBEngine.CompactDatabase OriginalFile, TempFile
'Шаг 5: Удалить старую базу данных
Kill OriginalFile
'Шаг 6: Переименуйте временную базу данных
Name TempFile
As
OriginalFile
End
Sub
03 Как работает макрос
1. Шаг 1 объявляет три строковые переменные, которые содержат имена файлов.
2. Шаг 2 присваивает каждой из строковых переменных имя файла. Переменной OriginalFile присваивается путь к файлу и имя целевой базы данных. BackupFile присваивается путь к файлу и имя файла резервной копии. Переменной TempFile присваивается путь к файлу и имя временного файла.
3. Шаг 3 использует функцию FileCopy, чтобы сделать резервную копию OriginalFile (цель база данных). Хотя этот шаг не является необходимым для сжатия и восстановления процедуры, как правило, это хорошая практика - сделать резервную копию базы данных перед запуском VBA.
4. Шаг 4 выполняет процесс сжатия и восстановления. На данный момент, у вас есть две копии базы данных: исходная база данных и вторая база данных, которая является копией оригинала без пустого пространства файла.
5. Шаг 5 удаляет исходную базу данных, оставив копию.
6. Шаг 6 просто переименовывает временный файл, присвоив ему имя вашей исходной базы данных. У вас теперь база данных, которая является компактной и оптимизированной.
04 Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
3. Выберите Insert➜Module.
4. Введите или вставьте код во вновь созданном модуле.
05 Скачать файл
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь