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

автор

в базе Access при работе проекта создаются временные файлы, и когда они большие база требует сжатия

Под "временные файлы", имеются ввиду таблицы? ИМХО, вы пошли не тем путем...
1. Сжать можно и проще (для A2000):

Public Sub CompactCurrentDB()
'Выполняет сжатие текущей БД.
'2071 - индекс позиции меню "Compact and repair database..."
On Error Resume Next
    CommandBars.FindControl(1, 2071).accDoDefaultAction
End Sub

2. Попробуйте обойтись без создания временных таблиц. Если это импорт из файлов, то лучше присоединить файл, а еще лучше получить данные через запрос на выборку прямо из файла. Если это результат аналитики, то временные таблицы лучше создавать в другом MDB, который потом можно легко сжать или удалить. Также можно использовать отвязанный ADODB.Recordset.
3. Даже в вашем варианте при использовании CreateObject("JRO.JetEngine") подключать библиотеку не обязательно. Объявляйте все объектные переменные как Object, и вместо спецконстант - их значения.

 
MyTetra Share v.0.52
Яндекс индекс цитирования