Как сжать базу данных Access из Excel

Что делает макрос: Во время ваших интегрированных процессов, вы можете постоянно увеличивать или уменьшать количество записей и таблиц в базе данных. С течением времени, вы можете заметить, что доступ к базе данных становится все дольше. Это происходит потому, что Access не освобождает файловое пространство. Все пространство, необходимое для данных вы переместили из вашей базы данных в файл доступа. Автоматизация делопроизводства позволяет сжать и восстановить ваши базы данных прямо из кода.

Как макрос работает

Этот макрос по существу имитирует действия для автоматического сжатия и восстановления приложения Access.
Обратите внимание, что для того, чтобы использовать этот код, необходимо установить ссылку на библиотеку объектов Microsoft Access.
Для этого откройте VBA в Excel и выберите Tools➜References. Откроется диалоговое окно «References». Прокрутите вниз, пока вы
найдите запись Microsoft Access XX Object Library, где XX — это ваша версия Access. Выберите флажок рядом с записью.

Код макроса

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

Как этот код работает

  1. Шаг 1 объявляет три строковые переменные, которые держат имена файлов.
  2. Шаг 2 присваивает каждой из строковых переменных имя файла. Переменной OriginalFile присваивается путь к файлу и имя целевой базы данных. BackupFile присваивается путь к файлу и имя файла резервной копии. Переменной TempFile присваивается путь к файлу и имя временного файла.
  3. Шаг 3 использует функцию FileCopy, чтобы сделать резервную копию OriginalFile (цель база данных). Хотя этот шаг не является необходимым для сжатия и восстановления процедуры, как правило, это хорошая практика, чтобы сделать резервную копию базы данных перед запуском VBA.
  4. Шаг 4 выполняет сжатия и восстановления, указав исходную базу данных и указав путь к файлу временной базы данных.
  5. На данный момент, у вас есть две копии базы данных: исходная база данных и вторая база данных, которая является копией оригинала без пустого пространства файла. Шаг 5 удаляет исходную базу данных, оставив копию.
  6. Шаг 6 просто переименовывает временный файл, присвоив ему имя вашей исходной базы данных. У вас теперь база данных, которая является компактной и оптимизированной.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.
Оцените статью
Добавить комментарий