CompactDatabaseメソッドを使って、閉じているデータベースのコピーと最適化を行います。
サンプルでは、「C:\AccessVBA\db2.mdb」を最適化して、「C:\AccessVBA」フォルダに「db2Back.mdb」というコピーを作成しています。
Sub Sample()
DBEngine.CompactDatabase "C:\AccessVBA\db2.mdb", "C:\AccessVBA\db2Back.mdb"
End Sub
最適化されるのはコピーされたデータベースです。
開いているデータベースを最適化することはできませんし、コピー先のディレクトリに同名のファイルが存在するとエラーになります。
CompactDatabaseメソッドの構文は次のとおりです。
<構文>
DBEngine.CompactDatabase olddb, newdb, locale, options, password
指定項目 説明
olddb 閉じている既存のデータベース名を示す値を指定します。
"C:\db1.mdb" のようにフルパス名で指定できます。
ファイル名に拡張子が付いている場合、拡張子も指定してください。
"\\server1\share1\dir1\db1.mdb" という形式でネットワークパス名
を指定できる場合、ネットワーク上のデータベースも指定することが
できます。
newdb 作成中の最適化したデータベースのファイル名(およびパス)
を示す値を指定します。また、引数olddbと同様、ネットワーク
パス名も指定することができます。
locale (省略可能)バリアント型(Variant)の文字列式を指定します。
この文字列式は、引数newdbを作成するための照合順序を指定します。
この引数を省略した場合、値は引数 olddb と同じになります。
引数newdbパスワードを作成することもできます。次のように、
引数localeにパスワードの文字列(";pwd=" で始まります)に定数を
つけて結びつけます。
DbLangSpanish & ";pwd=NewPassword"
引数localeにolddb(既定値)と同じ値を使用するのに新しい
パスワードを指定した場合には、パスワードの文字列を引数locale
に入れます。
";pwd=NewPassword"
options (省略可能)1つ以上のオプションを示す定数または定数の組み合わせ
を指定します。
password (省略可能)データベースがパスワードで保護されている場合、
パスワードを含むバリアント型(Variant)の文字列式を指定します。
パスワードの前に、文字列";pwd="を入力する必要があります。
引数localeにパスワードの設定を含めた場合、
この設定は無視されます。
閉じているデータベースのコピーと最適化以外に、バージョンおよび照合順序の変更、暗号化を行うことができます。これは Jet ワークスペースでのみ使用可です。