• 締切済み

AccessからOracleへのODBC接続

現在、Oracleで作成したデータベースに接続して 検索するソフトを、Accessで作成してあります。 Oracleに接続をするのに、 ODBCを使用しているのですが、 最初依頼があったときは「Oracle8」のときだったので、 「Oracle8」のみ接続可能なプログラムが組んであり、 「Oracle10g」の入っているPCでは接続できないという問題が発生しました。 そこで、「Oracle8」と「Oracle10g」とも接続出来るように プログラムを書き換えたのですが、 現在は「Oracle11g」が最新になっていると思うので、 ゆくゆくはそれに対応しなければならないなあ、と思っています。 そうすると、Oracleがバージョンアップするたびに、 ソフトのプログラムを書き換えなくてはならなくなり、 効率的ではないな…と思いまして… Oracleのバージョンが違っていても、 自分のPCのOracleのバージョンを自動認識して、 AccessからOracleへ接続する方法はあるのでしょうか? ちなみに現在は、TableDefsコレクションを使用して、 まず、Oracle8で繋ぎにいき、それでエラーが起これば Oracle10gで繋ぎにいく、という処理を行っています。 【参考コード】 dim db as object dim tdf as object set db = CurrentDb set tdf = TableDefs("テーブル名") tdf.Connect = "(※テーブルのプロパティの説明のところに入る文)" tbf.RefreshLink (※ここが8と10gで違ってくる) よろしくお願いします。

みんなの回答

回答No.1

tdf.Connectに与える値が困るだけなら、プログラムにじか書きせず、プログラムの外側で値を管理すれば良いのでは? 設定値を管理するテーブルをMDB上に書けば終わる話ではないかと。

chulara
質問者

お礼

ご回答ありがとうございます。 お返事が遅くなり、申し訳ございません。 設定値を管理するテーブルをMDB上に置くというのは、 テーブルにOracleのバージョンを入れておいて、 その値を見にいくということでしょうか? 今回、出来たらいいな~、と思っているのは、 ドライバの名前を手動で設定するのではなく、 自動で判別する方法はないかな~、ということなのです。 説明が悪くて申し訳ないです。 バージョンごとにドライバ名が違ったりするので、 そのたびに手動で設定するということに、 いずれ限界が来る気がするので、 自動で判別できる方法があったら教えて頂きたいです。

関連するQ&A