DAO3.6でないとAccess2000形式のmdbファイルを認識できないのはなぜですか?

解決


超初心者  2003-07-24 10:01:24  No: 78759  IP: [192.*.*.*]

タイトルそのままなのですが、DAO3.6でないとACCESS2000形式のmdbファイルを認識できないのはなぜなのですか?なぜACCESS2000形式は対応していないのでしょうか?理由をご存知の方がいらっしゃいましたら、ぜひ教えてください!お願いします。

編集 削除
とろ  2003-07-24 11:27:18  No: 78760  IP: [192.*.*.*]

文章が分かりづらいのですけれども、、
『なぜACCESS2000形式は対応していないのでしょうか』の主語は『 DAO3.6 』ですか?

『 DAO3.6 』は
『ACCESS2000形式のmdbファイル』には対応しているけれども
『ACCESS2000形式』には対応していないのはなぜか、
ということですか?

編集 削除
超初心者  2003-07-24 11:41:51  No: 78761  IP: [192.*.*.*]

とろさんお返事ありがとうございます。私が知りたいのは、
ACCESS2000形式のmdbファイルがDAO3.6でないと認識できないのはなぜ?ということなのですが、質問の仕方がうまくないので申し訳ないです。

編集 削除
魔界の仮面弁士  2003-07-24 12:02:46  No: 78762  IP: [192.*.*.*]

まず、mdbが利用するデータベースエンジンである
Microsoft Jet ( Joint Engine Technology ) には、
以下のように複数のバージョンがあります。
http://support.microsoft.com/?kbid=141796

上記表には書かれていませんが、他にも Jet 3.52 や
Jet 4.0 などがあります。

そして、Access 2000やAccess 2002で作られたmdbは、
基本的に 4.0 形式となっています。
まずはこの事を覚えておいてください。


さて、ここからが本題です。

一般的には、VBから mdb を扱う場合、
  DAO を利用する
  ADO + Jet用OLE DB Providerを利用する
のいずれかの形式が使われますね。
# 他にも、ODBCでの利用や、Jet APIなどによる利用も
# 考えられますが、話が広がりすぎてしまうので、
# 今回は触れないでおきますね。(^^;


そしてDAOの場合、Jet 4.0形式を扱える最低バージョンは、
『DAO 3.6』となっています。

それより以前のバージョン(DAO 3.51等)では、それ未満の
Jetのバージョン(Jet 3.51以下)の物しか扱えません。
これが、Accesss 2000製のmdbが、DAO 3.6未満で
認識されない理由となります。


ちなみに、ADO(というか、OLE DBプロバイダ)での接続の
場合には、『Microsoft.Jet.OLEDB.4.0』にて、Jet 4.0形式の
mdbを処理できます。しかし、その前の『Microsoft.Jet.OLEDB.3.51』の
場合は、Jet 4.0形式のmdbを扱うことができません。

編集 削除
超初心者  2003-07-24 13:20:34  No: 78763  IP: [192.*.*.*]

魔界の仮面弁士さん、勉強になりました。
こんな質問に答えてくださってありがとうございましたm(__)m

編集 削除
超初心者  2003-07-24 13:24:35  No: 78764  IP: [192.*.*.*]

解決のチェック忘れてました。

編集 削除