Access Tips by pPoy

  
トップへ←Top    QueryへQuery  FormへForm  ReportへReport  Module(Sub)へSub  Module(Function)へFunction  ExcelへExcel  Etc.へEtc.  Word連携へWord

Module 外部 mdb を最適化する方法 《CompactRepair》 (Access2002)
Access 2000 からは、終了時のオプションで自分自身を最適化できます。
但し、コードの中で外部 mdb を使用している場合、それも同時に最適化する必要があります。

これは、自分以外の、外部 mdb を最適化&修復する方法です。

但し、外部 mdb がデータベースパスワードで保護されている場合は、パスワードを聞いてきます。
その場合はこちらをご利用ください。

以下の VBA を標準モジュールに貼り付けてください。
プロシージャは2個あります。
Sub DoRepair()
    ' 通常の Ac2002 の mdb最適化呼び出し用  2003/01/03 pPoy
    Dim strSource As String
    Dim strDestination As String
    
    strSource = "c:\最適化したい.mdb"          ' フルパス
    strDestination = "c:\コピー用仮.mdb"       ' フルパス
    
    If Dir(strDestination) <> "" Then Kill strDestination

    If RepairDb(strSource, strDestination) = True Then
        Kill strSource
        FileCopy strDestination, strSource
        Kill strDestination
        MsgBox "最適化終了!", vbOKOnly
    Else
        MsgBox "最適化失敗・・・", vbOKOnly
    End If
End Sub
Function RepairDb(strSource As String, _
        strDestination As String) As Boolean
    ' 通常の Ac2002 の mdbを最適化する関数  2003/01/03 pPoy

    On Error GoTo error_handler

    ' mdbを最適化して修復
    RepairDb = _
        Application.CompactRepair( _
        LogFile:=True, _
        SourceFile:=strSource, _
        DestinationFile:=strDestination)
    
    RepairDb = True
    
    ' エラートラップをリセットして終了
    On Error GoTo 0
    Exit Function
    
error_handler:
        RepairDb = False
End Function
イミディエィトウィンドウで、呼び出し用のプロシージャを実行してください。

  例: DoRepair

≪注意≫
  • 設定したい mdb のパスが不正確な場合、エラーで止まります。

  • この CompactRepair メソッドは、Access2002 から、新しく追加されたものです。
    Access2000 以前の mdb では使用できません。

    Ac2k では使用出来ないとご指摘くださった ペガサス キック さま、ありがとうございます。m(__)m



【念の為の注意書きです。】
このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行してください。

☆ 感想をお知らせください (直接ブラウザから送信致します。メールアカウントは不要です。)
  form mail はこちら

Copyright(C) pPoy 2003