タイトルそのままなのですが、DAO3.6でないとACCESS2000形式のmdbファイルを認識できないのはなぜなのですか?なぜACCESS2000形式は対応していないのでしょうか?理由をご存知の方がいらっしゃいましたら、ぜひ教えてください!お願いします。
文章が分かりづらいのですけれども、、
『なぜACCESS2000形式は対応していないのでしょうか』の主語は『 DAO3.6 』ですか?
『 DAO3.6 』は
『ACCESS2000形式のmdbファイル』には対応しているけれども
『ACCESS2000形式』には対応していないのはなぜか、
ということですか?
とろさんお返事ありがとうございます。私が知りたいのは、
ACCESS2000形式のmdbファイルがDAO3.6でないと認識できないのはなぜ?ということなのですが、質問の仕方がうまくないので申し訳ないです。
まず、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を扱うことができません。
魔界の仮面弁士さん、勉強になりました。
こんな質問に答えてくださってありがとうございましたm(__)m
解決のチェック忘れてました。
ツイート | ![]() |