Accessから独自のtnsnames.oraでOracleにODBC接続する方法

管理者権限のないアカウントでWindowsを使うことになり、%OracleHome%\NETWORK\ADMIN\tnsnames.oraをいじれなくて困っていたのですが、次の方法でAccessから独自のtnsnames.oraを使ってODBC接続できることが分かりました。

 

ポイント

  • Access DBファイルと同じところに独自tnsnames.oraを作成する。
  • Access DBファイルと同じところにファイルデータソースを作成する。
  • 作成後は、Access DBファイルのみ他の場所に移動しても大丈夫。
  • ファイルデータソースやtnsnames.oraを移動させると接続できなくなる。

 

手順

1.独自のtnsnames.oraの作成

必要な内容を記述して任意のフォルダに配置します。ここではマイドキュメント(%USERPRIFILE%\Documents)に保存することにしましょう。

 

2.Access DBの作成

1.で作成したtnsnames.oraと同じフォルダにAccess DBを作成します。

 

3.ODBC接続

あとはAccessから接続するだけです。[外部データ]タブの[ODBC データベース]を選択します。

AccessのODBCデータベースボタン

「外部データの取り込み – ODBC データベース」ダイアログが開き、「データのインポート元とインポート先、またはリンク元とリンク先の選択」画面が表示されるので、目的とする方を選びます。今回は[リンク テーブルを作成してソース データにリンクする]を選びます。

外部データの取り込みダイアログ

「データ ソースの選択」ダイアログが表示されるので[新規作成]ボタンをクリックします。

データソースの選択ダイアログ

[データ ソースの新規作成」ダイアログが開くので、OracleのODBCドライバーを選択して、[次へ]ボタンをクリックします。

例ではOracle 11gのODBCドライバーを選択しているところです。

データソースの新規作成ダイアログ データソースのドライバー選択

任意の[データ ソース名]を入力して[次へ]ボタンをクリックします。

パスを省略すると、「マイ ドキュメント」に作成されます。

データソースの新規作成ダイアログ ファイルデータソース名入力

[完了]ボタンをクリックします。

データソースの新規作成ダイアログ 確認画面

「Oracle ODBC ドライバ接続」ダイアログが新たに開くので、サービス名に先ほど作成した独自のtnsnames.oraに記述したサービス名、あとは必要なユーザー名、パスワードを入力して[OK]ボタンをクリックします。

Oracle ODBC ドライバ接続-1回目

「データ ソースの選択」ダイアログに戻ると、今作成したデータソースの名前が[DNS 名]に設定されているので、そのまま[OK]ボタンをクリックします。

DSNファイル選択後のデータソースの選択ダイアログ

あとは、再び「Oracle ODBC ドライバ接続」ダイアログが開くので、必要なパスワードを入力して[OK]ボタンを押せば完了です。

Oracle ODBC ドライバ接続-2回目

 

知っている人には常識なのでしょうが、これで1日くらいはまったのでメモ。

Accessから独自のtnsnames.oraでOracleにODBC接続する方法」への3件のフィードバック

  1. karuakun

    ためして無いけれど、簡易接続使って接続できるなら、TNS使わなくても接続できるんじゃないっすかね。
    または、TNSを丸ごと記述するとか。

    返信
    1. TAKANO Sho 投稿作成者

      TNSを丸ごと記述は、「Oracle ODBC ドライバ接続」ダイアログの[サービス名]に入れてみようとしたら桁数制限で入りきりませんでした・・・

      「TNS使わなくても」というのが、具体的にどういった方法のことを指しているのかわからないのですが、教えていただけますか?

      返信
  2. 私も同じ状況で困っています。上記を参考にさせていただき、リンクテーブルを作成したところ、その時はちゃんと接続できて、テーブルを開くことができるのですが、一度Accessを終了すると、もう繋がらなくなります。tnsnames.oraの検索順はカレントディレクトリが最初じゃないのでしょうか?(本来のoraclehomeに存在するものを参照してしまいます。)

    返信

コメントを残す