2007/02/23

Access2007 実はDAOが新バージョン。

前回まででAttachment型を見ていってDAOのバージョンが上がっているという事がわかりました。このバージョンというのがちょっと微妙な感じで、明らかにマイナーレベルの数値が上がっても良いぐらいの拡張はされているのに、このAccess2007で採用されたDAOには正式なバージョン番号が付いていないようなんです。

DAOの最新バージョンは3.6だったと思うのですが、Access2007ではそれすら参照されていません。

VBAコードエディタを開いて参照設定を見ても、DAO(Microsoft Data Access Object)への参照は設定されていません。

だけれどもVBAのコードからはDAOが参照(利用)出来るという変な状態なんですが、オブジェクトブラウザで見てみるとDAOはどのライブラリを参照してるかが判ります。


上記のように、ライブラリ名称こそDAOですがその実態は、”Microsoft Office 12.0 Access database engine Object”となっています。略すならADEOとかでしょうか?

ちなみにDAO3.6だはこんな感じでした。


素直にDAO 3.7とかにしなかった理由が何であるのかはわかりませんが、Access2007以降の製品でDAOCOM Objectとして利用することは無いでしょうし、脱COM的な流れの中ですあるとかそんな事が理由かも知れません。

今回のDAOの拡張されたポイントですが、オブジェクトブラウザで見た限りオブジェクトで目に付いたのはRecrodset2Field2ぐらいです。Field2に関してはメゾッドして SaveToFileLoadFromFileが、プロパティとしてComplexTypeIsComplexが追加されています。Recordset2にはプロパティとしてParentRecordsetが追加されています。


オブジェクト

新インターフェイス

備考

Reocrdset2

Property ParentRecordset As Recordset

Read-Only

Field2

Property ComplexType As ComplexType

Read-Only


Property IsComplex As Boolean

Read-Only


Sub LoadFromFile(Filename As String)



Sub SaveToFile(Filename As String)


ComplexType

Property Fields As Fields

Read-Only


この他にも定数やEnumerate(列挙型)がいくつか追加されているようですが、大きくはやはり添付ファイル型・複数値型を扱う為の拡張であるこの辺りがメインだと思います。今後Multi-valued filed(複数値型)に関してもう少し突っ込んでみようと思いますが、添付ファイル型は複数値型の一形態なんだって事がここまで分かるかと思います。

今回のAccessで使われているACEDAO.DLLに関してはWeb上にもあまり情報がありません。Googleで検索してもほとんどヒットしませんし。これをDAO12.0とかって呼ぶのはちょっと無理があるんで、何か素敵な呼び名を付けてあげなくてはとか思ってたりしますけど。

余談ではありますが、日本ではコンプレックスって劣等感みたいな意味で使いますが、劣等感そのものは英語ではInferior complexって表現になり、complexって単語にはネガティブな意味合いはまったくありません。その辺を理解しないで英文を読んでしまうと間違って変な解釈してしまったりしますのでご注意を。

関連のありそうな記事

0 コメント: