Как сжать базу данных Access из Excel
Автор Дмитрий Якушев На чтение3 мин. Просмотров76
Что делает макрос: Во время ваших интегрированных процессов, вы можете постоянно увеличивать или уменьшать количество записей и таблиц в базе данных. С течением времени, вы можете заметить, что доступ к базе данных становится все дольше. Это происходит потому, что 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 объявляет три строковые переменные, которые держат имена файлов.
- Шаг 2 присваивает каждой из строковых переменных имя файла. Переменной OriginalFile присваивается путь к файлу и имя целевой базы данных. BackupFile присваивается путь к файлу и имя файла резервной копии. Переменной TempFile присваивается путь к файлу и имя временного файла.
- Шаг 3 использует функцию FileCopy, чтобы сделать резервную копию OriginalFile (цель база данных). Хотя этот шаг не является необходимым для сжатия и восстановления процедуры, как правило, это хорошая практика, чтобы сделать резервную копию базы данных перед запуском VBA.
- Шаг 4 выполняет сжатия и восстановления, указав исходную базу данных и указав путь к файлу временной базы данных.
- На данный момент, у вас есть две копии базы данных: исходная база данных и вторая база данных, которая является копией оригинала без пустого пространства файла. Шаг 5 удаляет исходную базу данных, оставив копию.
- Шаг 6 просто переименовывает временный файл, присвоив ему имя вашей исходной базы данных. У вас теперь база данных, которая является компактной и оптимизированной.