AccessやAccess Runtimeを使わずにmdbファイル、accdbファイルを最適化する


DAO.DBEngine というライブラリを使うと、AccessやAccessランタイムがインストールされていないPCからでもとても簡単にmdbファイルやaccdbファイルを最適化することができます。

異なる3つの形式で試してみたところ、全てあっけないくらい簡単に最適化ができました。下記はそのテストに使ったソースコードです。

下準備として、まずは最適化したいmdb/accdbファイルを用意し、Excelファイルと同じフォルダに入れて下さい。

ExcelのVBEで標準モジュールを追加し、下記のコードを貼り付けて使って下さい。

ソースコードの青字部分は対象ファイルの名前に変更してください。 

また、CreateObject("DAO.DBEngine.36") の部分は、PCにインストールされているDAO.DBEngineのバージョンに合わせて書き換えて下さい。

ソースコード

Public Sub compactAccess() 'MDB (Access 97形式) Dim DB97old As String: DB97old = ThisWorkbook.Path & "\" & "DB97.mdb" Dim DB97new As String: DB97new = ThisWorkbook.Path & "\" & "DB97new.mdb"

 'MDB (Access 2000形式) Dim DB2003old As String: DB2003old = ThisWorkbook.Path & "\" & "DB2003.mdb" Dim DB2003new As String: DB2003new = ThisWorkbook.Path & "\" & "DB2003new.mdb"

 'ACCDB (Access 2007以降) Dim DB2007old As String: DB2007old = ThisWorkbook.Path & "\" & "DB2007.accdb" Dim DB2007new As String: DB2007new = ThisWorkbook.Path & "\" & "DB2003new.accdb"

 Dim DBE1 As Object, DBE2 As Object 'dao360.dll   mdb (Access 97形式含む) にだけ対応 Set DBE1 = CreateObject("DAO.DBEngine.36") 'acedao.dll accdb および mdb (Access 97形式除く) に対応 Set DBE2 = CreateObject("DAO.DBEngine.120")

'最適化 'MDB (Access 97形式) DBE1.CompactDatabase DB97old, DB97new 'MDB (Access 2000形式) DBE1.CompactDatabase DB2003old, DB2003new 'ACCDB (Access 2007以降) DBE2.CompactDatabase DB2007old, DB2007new End Sub

特集記事
最新記事
アーカイブ
タグから検索
ソーシャルメディア
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square