с. Сжатие базы данных


 

     При работе с базой данных Microsoft Access у Вас постепенно будет расти размер базы данных. Это связано с тем, что, удаляя элементы или записи «физически» из базы они не удаляются, уничтожаются только ссылки.  Для уменьшения размера базы данных, напишем программу для сжатия ее файла.

     В качестве имени файла, передаваемого в программу, введем переменную StrMDB.

 

Public Function funCompactDatabase(strMDB As String) As Boolean

Dim tmpMDB As String, fs, sFullPath As String

    On Error GoTo 999  'Назначаем переход по ошибке

    funCompactDatabase = False 'Возвращаем результат при ошибке

   

    sFullPath = appFolder & "\" & strMDB 'Устанавливаем полное имя файла

    Set fs = CreateObject("Scripting.FileSystemObject") 'Создаем файловую систему

    tmpMDB = fs.GetTempName 'Получаем временный файл

    DBEngine.CompactDatabase sFullPath, tmpMDB, dbLangCyrillic 'Сжимаем базу данных

    fs.CopyFile tmpMDB, sFullPath, True 'Переписываем файл

    Kill tmpMDB 'Удаляем временный файл

    Set fs = Nothing 'Уничтожаем объект файловой системы



   

    funCompactDatabase = True 'Возвращаем результат

    Exit Function 'Выходим из программы

999:

    MsgBox Err.Description 'Сообщаем об ошибке

    Err.Clear 'Очищаем поток от ошибок

End Function

 



Содержание раздела