Accessでは、登録したレコードを削除しても、物理的に使用するディスク容量は変わりません。そこで、定期的に「DBの最適化」処理を行うわけですが、通常、「ツール」メニューの「データベースユーティリティ」の「最適化/修復」を使用しますが、VBAのコードを使ってもデータベースを最適化させることが出来ます。システム終了時に最適化するコードを実行させれば、常に最高のパフォーマンスでデータベースを参照することができます。
●サンプル●
Sub Optimization()
Dim cOrgDB As String
Dim cOptDB As String
' 最適化をするデータベースのファイル名を指定する
cOrgDB = "C:\Documents and Settings\sato\My Documents\db2"
' 最適化済みのデータベースのファイル名を指定する
cOptDB = "C:\Documents and Settings\sato\My Documents\db2_new"
' 最適化開始
DBEngine.CompactDatabase cOrgDB, cOptDB, , dbEncrypt
End Sub
注意:CompactDatabaseメソッドは、閉じているデータベースのコピーと最適化を行います。開いているデータベースに対して実行するとエラーが発生します。