2013-01-18 28 views
43

Classic ASPとMicrosoft Accessを使用してプログラミングしたところ、Microsoft.Jet.Oledbドライバを使用してアクセスして表示したデータ。Microsoft.Jet.OleDbとMicrosoft.Ace.OleDbの相違点

「Microsoft.Ace.Oledb」を使用してMS Excelデータにアクセスする作業を依頼されました。私はこれが "Microsoft Access 2010 Engine Redistributable"ダウンロードの一部であることを発見しました。

Microsoft.Jet.OleDbが「Microsoft.Ace.Oledb」ドライバに置き換わっていて、本質的に同じか、まったく異なるものがあるかどうか知りたいですか?

また、MS Access 2010を購入すると、通常は「Microsoft.Ace.Oledb」ドライバが入手できますか?

答えて

55

それは主に歴史の問題だ、効果的にACEが代わらたJET:非常に詳細で

Wikipedia answers your question

最も関連のセクションは、次のとおりです。

バージョン2007年以降では、アクセスは、最初にOffice Accessの接続性エンジン(ACE)と呼ばれる、ジェットのオフィス固有のバージョン が含ま が、今と呼ばれますAccessデータベースエンジン。このエンジンは と完全に下位互換性がありますので、以前のAccessバージョンから ファイルを読み書きします(.mdb)。 には、 複数値フィールド、添付データ型、および メモフィールドの履歴の追跡などの複雑なデータ型を含む、いくつかの がAccessに改良された新しい既定のファイル形式(.accdb)が導入されています。また、セキュリティや暗号化の改善をもたらし、 はまた、マイクロソフトのWindows SharePoint Services 3.0と のMicrosoft Office Outlook 2007の

との統合を可能にし、ACEは、64ビットドライバを提供するので、64ビットマシン上で使用することができ、 JETはできません。

ドライバはWindowsオペレーティングシステムの一部ではありませんが、 は再配布可能です。[11]以前はJetデータベースエンジン は32ビットのみであり、Windowsの の64ビットバージョンではネイティブに実行されませんでした。

質問の2番目の部分として、私は最近Office 2010をインストールしました。私はACEコンポーネントを別途ダウンロードする必要がありました。私はリンクMicrosoft Access Database Engine 2010 Redistributableからそれらを得た。これは、64ビット版Windowsに32ビット版のOfficeをインストールしたためと思われます。どのような場合でも、必要なファイルはMicrosoftから簡単に入手できます。

+0

私は何か仕事をして以来、非常に長い時間を過ごしましたか?あなたは命を救ってくれてありがとう! – RT88

+0

Microsoftは、[ADEダウンロードページ](https://www.microsoft.com/en-us/download/details.aspx?id=54920)に多くの(驚くべき)免責事項を記載しています。 (1)ADEは、サーバー側アプリケーションのJet [sic!]を置き換えるものではなく、(3)WebアプリケーションまたはサービスコンポーネントでADEを使用することは、サポートされます。 – Heinzi

4

基本的な操作に使用されるドライバは基本的に同じで、より複雑なもの(ユニオン、ネストされたクエリなど)との大きな違いを示します。

個人的な経験に基づいて、ACEは完全に後方互換性のある結果を提供しません。以前の.mdb形式を開いて読み書きする可能性がありますが、データ型の変更点は全く同じクエリのキャストです。

たとえば、JETがTEXT(255)の結果を返すTEXTフィールドのUNIONを使用すると、ACEはMEMO?を返します。

これは、Crystal ReportsなどのBIツールやレポートツールとの組み合わせで多くの問題を引き起こす可能性があります。

+1

ACE 2016がこの問題を解決したようです。今のところJetとの互換性を見つけることはできません。 –