MyTetra Share
Делитесь знаниями!
Как сжать базу данных Access из Excel
12.10.2019
20:39
Текстовые метки: VBA_Access, Compress
Раздел: !Закладки - VBA - Access - Compress

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

Автор Дмитрий Якушев На чтение3 мин. Просмотров76

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

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

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

Этот макрос по существу имитирует действия для автоматического сжатия и восстановления приложения 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 просто переименовывает временный файл, присвоив ему имя вашей исходной базы данных. У вас теперь база данных, которая является компактной и оптимизированной.
 
MyTetra Share v.0.52
Яндекс индекс цитирования