掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
レジストリの値を使ってインストール先を取得するには? (ID:87629)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
そのコードは、DAOのコードですね。(DAOを参照設定して使う方法) DAOは、どのバージョンをお使いですか? "DAO 3.6"は、Jet 4.0以下の殆どのmdbを操作できますが、 "DAO 3.5x"は、Jet 3.52以下のmdbしか操作できませんので、 操作対象のmdbファイルとDAOのバージョンの不一致に注意してください。 > Set db = workspaces(0).opendatabase("c:\xxx\yyy.mdb") > Select Case dbs.Version 上記の「dbs」という変数は、「db」という変数とは別物という事ですか? --- で、ちょっと確認。 まず、知りたい情報というのは、「Accessのインストール先」との事ですが、 実際には、ひとつのOSに複数のAccess(たとえば、2.0と97と2002)を混在して インストールさせる事も可能なわけです。そのような環境の場合、いったい、 どのバージョンのAccessの情報が返されれば良いのでしょうか? もし、「指定されたmdbを開くことができるAccessのバージョン」という 判断であるとしても、各バージョンには、ある程度の下位互換性が 持たされていますので、そのmdbを、(Access 2000,2002,2003などの) 複数のバージョンで開ける場合もありえますよね。 それから、お使いのコードでは、(Accessではなく)DAOを使って mdb を開いて 操作しておられるようですが、そもそも ・Microsoft Accessのバージョン ・Database Engineである「Jet」のバージョン ・DAO (Data Access Object) のバージョン これらの違いについて、それぞれ明確に把握されていますでしょうか。 (先のコードが、「どれのバージョン」を返すのかを理解しておられますか?) # バージョン比較に関する参考資料 # http://support.microsoft.com/kb/239114/JA/ # http://support.microsoft.com/kb/172733/JA/ # http://support.microsoft.com/kb/141796/JA/ そもそも、あのコードで使われている Versionプロパティ から返される 値というのは、mdbファイル自身のJetバージョンを返すものであって、 お使いの Access のバージョンとは、「直接的には」関係ありません。 もし、mdbファイルの内容から、「作成元のAccessのバージョン」を知りたい場合は、 以下のように "AccessVersion" というダイナミックプロパティを参照する方法が ありますので、こちらを利用してみてください。 http://www.ruriplus.com/msaccess/tch/tch_041.html ただし、「Access以外で作成されたmdbファイル」…すなわち、DAOやJROなどを用いて ExcelやVBなどから生成されたmdbでは、そもそも、"AccessVersion"プロパティが 存在していない事になりますので、その点には注意してください。 それから、"AccessVersion"に登録されているのは、あくまでも 「そのmdbを作成したAccessのバージョン」という事であって、 「インストールされているAccessのバージョン」ではありません。 ですから、mdbを作成したPCと、そのmdbを開くPCが別物であれば、ここから Accessのインストールパスを導き出すという行為は、意味が無いかもしれません。 (DAOを使えば、mdb内の "AccessVersion"を編集することも出来てしまいますね)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.