プロが教えるわが家の防犯対策術!

office2003、XP SP3を使っています。

前までは,新規にmdbファイルを作成した時のVBEの参照設定は、
Microsoft ActiveX Data Objects 2.1 Libraryにチェックがついてなかったような気がしたのですが
今は
新規ブックを立ち上げて、参照設定を確認すると、
Microsoft ActiveX Data Objects 2.1 Libraryにチェックがついています。

Dim cn As New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName
cn.Close: Set cn = Nothing

のコードを標準モジュールに張り付けて実行した時に、
問題なく作動します。

昔は、参照設定に
Microsoft ActiveX Data Objects 2.1 Libraryがデフォルトで
ついてなかったから、
http://www.happy2-island.com/access/gogo03/capte …
のようにチェックしないと、
「cn As New ADODB.Connection」の部分で、
”コンパイルエラーユーザー定義型は定義されていません。”
となっていたのですが、どういう事なのでしょうか?

自分が聞きたいことは
なぜ昔は新規にファイルを作った時に
Microsoft ActiveX Data Objects 2.1 Library
にチェックがついてなかったのに、
今はMicrosoft ActiveX Data Objects 2.1 Libraryにチェックが
つくようになったのか?という事です。

ウインドウズアップデートが原因なのでしょうか?

A 回答 (4件)

> マイクロソフトのページの


> Microsoft ActiveX データ オブジェクト 2.5 ライブラリへの参照 (Msado25.tlb)
> がADOですかね。

そうです。ActiveX Data Object の頭文字が ADO です。

ちなみに、DAO は Data Access Object の頭文字です。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/10/23 23:30

> 「事前バインディング」について


つまりオブジェクト名を明示的に指定してコーディングされているならば、
昔から参照設定はついていたということになります。

つまりADODB.Connectionの型定義部分がそれにあたります。
参照設定していない場合はObject型でしか定義できませんし、
そこから新たにオブジェクトを作成する場合は
Set hoge = CreateObject("ADODB.Connection")
という記述が必ずどこかにあるはずです。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/10/23 23:30

> なぜ昔は新規にファイルを作った時に


> Microsoft ActiveX Data Objects 2.1 Library
> にチェックがついてなかったのに、
> 今はMicrosoft ActiveX Data Objects 2.1 Libraryにチェックが
> つくようになったのか?という事です。

私の記憶では、新規作成時の参照設定の既定は、Access97 ではDAOのみチェックが付いていて、Access2000、2002 ではのADOのみチェック、Access2003から、両方にチェックがついてDAOが上にある、ということだったと思っています。

下記のMSのサポートページにも、既定で、DAO, ADOに参照設定されているとの記述があります。

Access 2003 でデータベースを操作する際に設定する必要があります参照
http://support.microsoft.com/kb/870962/ja

私の記憶違いかつMSのページの間違い、か、質問者さんの記憶違いのどちらかということになりますね。

Office2003 をアンインストールして、また、再インストールすれば確認できますが、そこまでして確認するほどの問題でもないと思いますので私はしませんが、気になるようでしたら確認してみてはどうでしょうか。
    • good
    • 0
この回答へのお礼

Access2003からは、DAOとADOの両方にデフォルトで参照設定が付いてるという事ですか。

マイクロソフトのページの
Microsoft ActiveX データ オブジェクト 2.5 ライブラリへの参照 (Msado25.tlb)
がADOですかね。

機会があれば、再インストールをして確認してみたいと思います。

お礼日時:2012/10/05 21:34

えっと、事前バインディングでプログラムがコードされていたのなら、


前から参照設定はついていたと思いますよ。

何かの拍子にファイルが変更されたのではないでしょうか?

大体プログラムを書く時、事前バインディングでコードしていき、
最後に参照設定を外して、実行時バインディングに変え、
事前バインディングしている部分をObjectに変換かけると
思います。

何を思ったか、
元々実行時バインディングだったが事前バインディングに書き換えた
もしくは
事前バインディングでプログラムを書いてた時のファイルを操作してた

のいずれかだと思いますけど。
    • good
    • 0
この回答へのお礼

「事前バインディング」について
ちょっとよくわからないので調べてみます。

お礼日時:2012/10/05 21:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!