DXR165の備忘録

自分用の備忘録です。

Jet / ACE エンジン  

Access 2003 のデータベースエンジンは Jet でした。Access 2007 以降はACE Engine( Microsoft Access Engine )になりました。ACE はJet とは別建て開発したようです。ACE は、以前のバージョンの JET との完全な下位互換性があるので、(.mdb) ファイルを読み書きできるようです。ACE はAccess の略と思われます。現在のところAccess がリリースされたびにACE もバージョンアップしているようです。 



Access 2003 のデータベースエンジンは Jet 4.0 です。

Jet 4.0 は2009年ぐらいまでバージョンアップされていたようです。いくつかのバージョンが存在します。

Windws XP のMDAC 2.8にはJet 4.0は同梱されていないようです。

Windows Vista/7 ではJet 4.0 はWDAC の一部として以下の関連ファイルで同梱されています。これは、過去資産の互換性のためと思われます。現在(2012/10/12)のところJet 4.0の64ビット版は提供されないようです。

64-Bit Windows 7 では
C:\Windows\SysWOW64
  Jet 4.0 本体( Msjet40.dll )
  Jet 4.0用のOLE DBプロバイダ
          "Microsoft.JET.OLEDB.4.0"(msjetoledb40.dll)

C:\Program Files (x86)\
      Common Files\microsoft shared\DAO
  Jet 4.0用のオブジェクトライブラリー DAO 3.6 (dao360.dll)




ACE になって実装がわりやすくなりました。上位フォルダがバージョン別になっています。Office 14 ( Access 2010 )では64ビット版が提供されています。ACE EngineはWindows には同梱されないようですが、Office 製品には同梱される場合があるようです。また、ACE Engineはマクロソフトのサイトからダウンロードできるようです。

Offece 2007 (12)はACE Engine Ver 12.0
Office 2010 (14)はACE Engine Ver 14.0
のようです。


32-Bit Office xx on 64-Bit Windows 7 では次のように実装されています。

Access 2007 ( Office 12 ) xx=12
Access 2010 ( Office 14 ) xx=14

C:\Program Files (x86)\
     Common Files\microsoft shared\OFFICExx 
  ACE本体 ( ACECORE.DLL )  
  ACE用のオブジェクト ライブラリー DAO xx ( ACEDAO.DLL  ) 
  ACE用のOLE DBプロバイダ
      "Microsoft.ACE.OLEDB.12.0" (ACEOLEDB.DLL) 

  ※DAO xx =  Microsoft Office xx.0 Access 
                         database engine Object Library

C:\Program Files (x86)\
     Microsoft Office\Officexx
  Office アプリケーション本体 ( Word Excel Access など)



ACE エンジンを介してExcel VBAなどからデータにアクセスする方法は3つあります。

1.  DAO
     ACE エンジンの全機能を使うことができます。 

アプリケーション (Excel VBAなど)
     | 
DAO ( Data Access Object )
     |
Jet / ACE Engine
     |
mdb / accdb Files 


2.  OLEDB(ADO)
     データによらず統一した手法でデータにアクセスできます。
     Word の差し込み印刷でExcelデータなどを参照するときに使われている。
     Excel の外部データ取り込みなどで使われている。 

アプリケーション (Excel VBAなど)
     | 
ADO ( ActiveX Data Object ) 
     |  
OLE DB
     |
Jet / ACE Engine
     |
mdb / accdb Files  

3.  ODBC
     Excel VBA などでは直接使わない。他言語の既存資産を保守するときに使います。
     Excel のMS Queryで使われている。




ACE 用のOLE DBプロバイダはOffice 12 ,14ともに共通で"Microsoft.ACE.OLEDB.12.0"ですがExcelにアクセスするときは拡張プロパティの指定を次のようにします。(マイクロソフトのサイト情報)

Excel 2007 にアクセスするとき →  "Excel 12.0"
Excel 2010 にアクセスするとき →  "Excel 14.0"


DAO ProgID
32-Bit Office 2010 (14) on 64-Bit Winows 7では
DAO  3.6 -> "DAO.DBEngine.36"
DAO 14.0 -> "DAO.DBEngine.120"
となっています。
Office 2007 (12)とOffice 2010 (14) とも"DAO.DBEngine.120" のようです。


メモ
Windows 7でOffice 2003がなく.mdb (Access 2000-2003 形式)をExcel 2010 VBAから操作する場合はDAO3.6ではなくMicrosoft Office 12.0 Access database engine Objectを使います。


私的物置場所
VBSでDAO
Option Explicit

Dim dbEng
Dim myDAO_VERSION

'***************************************************
'DAOオブジェクトを作成します
Set dbEng = CreateObject("DAO.DBEngine.120")

myDAO_VERSION = " DAO Ver " & dbEng.Version
Set dbEng = Nothing
'***************************************************

関連記事

category: Access その他

tb: 0   cm: 0

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://dxr165.blog.fc2.com/tb.php/117-6c8114c9
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

最新コメント

カウンター(2012/3/10以降)