Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

他のデータベースを最適化する方法 : VBAのTips解説



CompactDatabaseメソッド

CompactDatabaseメソッドとは、開いているデータベースから、閉じているデータベースのコピーと最適化を行うメソッドです。開いているデータベースから自分自身をコピーと最適化することはできません。これは Jet ワークスペースでのみ使用することができます。

  • 書式
DBEngine.CompactDatabase olddb, newdb, locale, options, password
  • 引数
引数 意味 指定
olddb 閉じているデータベースを"C:\db1.mdb" のようにフルパス名で指定します。"\\server1\share1\dir1\db1.mdb" という形式でネットワークパス名を指定することもできます 省略不可
newdb 作成中の最適化したデータベースのフルパス名を指名します。引数olddbsと同じ名前は指定できません。 省略不可
locale 文字列比較や並べ替えを行う場合のテキスト型 (Text) の並べ替え順序を日本語から他言語に変更できます 省略可能。省略した場合は、元のファイルと同じ形式になります
options データベースを最適化する際、暗号化するか解読するかを指定します 省略可。省略した場合は、元のファイルと同じ形式になります
password データベースがパスワードで保護されている場合、パスワードを指定します。記述方法は、";pwd=" と入力します 省略可能。パスワード設定がなければ省略します

引数の設定値

引数options

意味
dbEncrypt 最適化中にデータベースを暗号化します
dbDecrypt 最適化中にデータベースを解読します

関連項目

  1. InStrRev関数
  2. EOFプロパティ(DAO)
  3. Connectionオブジェクト(ADO)
  4. Openメソッド(ADO)

事例 ) 他のデータベースを最適化する

  1. 非連結フォームを作成します。
  2. 非連結のテキストボックスを新規作成します。
  3. 実行するコマンドボタンを新規作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。

Private Sub 実行_Click()

   On Error GoTo エラー

   Dim myTxt As TextBox
   Dim strdir As String
   Dim strMsg As String
   Dim varPast As Variant
   Dim varNew As Variant

   Set myTxt = Me.最適化対象
   strMsg = myTxt & " を最適化します。"

   If IsNull(myTxt) Then MsgBox "Accessの絶対パスを入力して下さい。": End
   varPast = FileLen(myTxt) \ 1000 & "KB"

   If MsgBox(strMsg, vbOKCancel) = vbOK Then
      strdir = InStrRev(myTxt, "\")
      strdir = Left(myTxt, strdir)

      DBEngine.CompactDatabase myTxt, strdir & "最適化中.mdb" '--- A
      Kill myTxt
      Name strdir & "最適化中.mdb" As myTxt '--- B
   varNew = FileLen(myTxt) \ 1000 & "KB"

      MsgBox "最適化が完了いたしました。" & vbNewLine & myTxt & vbNewLine & _
             "最適化前 : " & varPast & " → " & "最適化後 : " & varNew
   Else
       MsgBox "キャンセルしました。", vbCritical + vbOKOnly
   End If

   Exit Sub

エラー:

   MsgBox Err.Number & " : " & Err.Description
   Exit Sub

End Sub
解説
  1. 「最適化中」という名の最適化した新ファイルを作成します。つまり、ファイルのコピー化を行います。
  2. Nameステートメントを使って、元のデータベース名に戻します。

動作確認

  1. フォームをビューモードで開きます。

  1. 最適化するAccessの絶対パスを入力し、[最適化実行] ボタンをクリックします。
  2. 最適化が完了したメッセージが表示されます。

ページの先頭へ 前ページへ戻る


他のデータベースを最適化する方法 : VBAのTips解説


 

-Microsoft Access Club-

年額2,400円でドメインネームサーバーをご用意します。自宅サーバ構築時にご利用下さい。自宅サーバーは応用範囲が広いです。
年額2,400円でドメインネームサーバー。
自社・自宅サーバ構築時にご利用下さい。
やはり、自前サーバーは応用範囲が広いです。