【ACCESS】OracleにODBC接続する手順

ACCESSからOracleにODBC接続するためにはOracle Instant Client を利用します。

この記事ではACCESSからOracleへODBC接続する手順を出来る限り解りやすくご紹介しています。

 

sponsor link

Oracle Instant Client の入手

利用環境にあったバージョンをORACLEのホームページより入手します。

fw_error_www

ここでは、Oracle Instant Client Downloads for Microsoft Windows (x64) 64-bitを例として利用するため下記のbasicとodbcの二つをダウンロードします。※バージョンは適宜読み替えてください。

NameDownload
Basic Packageinstantclient-basic-windows.x64-21.3.0.0.0.zip
ODBC Packageinstantclient-odbc-windows.x64-21.3.0.0.0.zip

 

instantclient ファイルの配置

ダウンロードしたファイルを適当な場所へ解凍します。

ここでは D:\Oracle フォルダを作成しその中に解凍しています。以降 D:\Oracle フォルダで作業を行います。

解凍したフォルダの中にある instantclient_XX_X というフォルダ一式をコピーして、外に出します。(この段階で削除や切り取りはしないでください)

次に instantclient_XX_X というフォルダは basic と odbc の両方にあるので1つにまとめます。

ここでコピーとした理由は、oracle instantclientのインストール時に一部ファイルが消失する現象が発生する為、その際に補完を行う必要があるからです。(2022/1現在)

 

Oracle Instant Client インストール

インストールはコマンドプロンプトより行います。

[windowsロゴ]キー + [R]キー でファイル名を指定して実行を開きます。

名前のところに cmd と入力して [Shift]キー + [Ctrl]キー を押しながら[Enter]キーで管理者権限で起動できます。

 

instantclient_21_3 フォルダ内の odbc_install.exe を利用してインストールを行います。

cd D:\Oracle\instantclient_21_3
odbc_install.exe JA

インストールは以上で完了です。

 

ここで、消失したファイルを再配置します。

odbcフォルダ内の sqora32.dll と sqoras32.dll と sqresja.dll と sqresus.dll の4ファイルをコピーして、外にまとめておいた「instantclient_21_3」フォルダ内に再度コピーします。4つのうちいずれか1つが消失しています。(2022/1現在)

 

旧バージョンのアンインストール

※旧バージョンをインストール済の場合は予めデータソースを削除した上で、odbc_uninstall.exeを使って旧バージョンをアンインストールしておきます。

odbc_uninstall.exeは旧バージョンのインストール場所にあるものを利用してください。

D:\Oracle\instantclient_19_10>odbc_uninstall.exe
Oracle ODBC Driver is un-installed successfully.

 

tnsnames.ora ファイルの作成と配置

ODBC接続する際に利用するtnsnames.oraファイルの作成と配置を行います。

(基本的な構文)

net_service_name=

(DESCRIPTION=

(ADDRESS=(protocol_address_information))

(CONNECT_DATA=

(SERVICE_NAME=service_name)))

tnsnames.oraファイルの記述方式は様々です。詳しくは下記を参照してください。
https://docs.oracle.com/cd/E16338_01/network.112/b56287/tnsnames.htm

 

ここでは例として下記のように作成しました。

赤字の部分は適宜ご自身の環境に合わせて変更が必要です。

TNSNAMEはODBC接続する際に選ぶことになるTNSサービス名です。わかり易い名前にします。

HOSTは接続先データベースのIPアドレス

PORTはデータベースに接続する際のPORT番号(Oracleのデフォルトは1521)

SERVICE_NAMEは接続するOracleの「データベース名」を指定します。

TNSNAME =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.24.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ODBCTEST)
    )
  )

 

tnsnames.oraファイルの配置場所は、D:\Oracle\instantclient_21_3 のフォルダ内としました。

 

環境変数の登録

環境変数を登録して tnsnames.ora ファイルへのパスを通します。
コントロール パネル ⇒ ユーザー アカウント ⇒ 環境変数の変更
変数名 ⇒ TNS_ADMIN
変数値 ⇒ D:\Oracle\instantclient_21_3
(※変数値はtnsnames.oraを配置するディレクトリまでのフルパス)

 

文字化け対策

Oracleサーバ側とローカルPC側の文字コードが異なる場合、データ取得時に文字化けが起こることがあります。

ログインユーザの環境変数に下記を登録して対策をとります。

変数名:NLS_LANG

変数値:JAPANESE_JAPAN.JA16SJISTILDE

※設定後Accessを起動している場合は、Accessを再起動します。

 

 

ODBCデータソースの登録

ここではACCESS側でOracleに接続する時に利用するODBC接続用のデータソースを作成していきます。

 

Windows検索窓に ODBC と入力して ODBC データソースを起動します。

今回 64bit 版の Oracle Instant Client をインストールしたため、ODBCデータソースも 64bit版を利用します。

 

ユーザーDSNで「追加」ボタンを押して、インストールした Oracle instantclient を選択して完了ボタンを押します。

 

TNSサービス名のところでtnsnames.ora ファイルに記載したサービス名を選択します。

ここでプルダウンメニューに表示されない場合は、環境パスの設定が誤っているか、tnsnames.oraファイルの配置ミス、記載ミスの可能性があります

必要事項を入力したら[接続テスト]ボタンを押して接続テストを行ってください。

正常に接続できることを確認してOKボタンで閉じて完了となります。

 

ACCESSでリンクテーブルを作成してOracleにODBC接続

それでは、実際に作成したデータソースを利用してOracleにODBC接続してみましょう。

 

以下、AccessからODBC接続する簡単な流れになります。

 

1.ACCESS起動後、外部データタブ ⇒ ODBCデータベース の順にクリックして外部データの取り込み画面を起動

2.「リンクテーブルを作成してソースデータにリンクする」を選択

3.「コンピューターデータソース」タブで作成したデータソースを選択

 

4.Oracle ODBCドライバ接続ダイアログでOracleのユーザー名とパスワードを入力

 

5.接続するテーブルを選択

次回接続時にパスワードの入力を省略したい場合は、パスワードの保存を選択。

※ソースからユーザIDとパスワードが見ることが出来るので知られて困る場合はチェックを外す。

以上でAccessからOracleへODBC接続してリンクテーブルを作成するまでの手順は完了です。

今回設定したODBC接続は設定した端末からしか利用できませんが、他の端末でも同じODBCデータソースの設定を行うことで、ACCESS側で設定を変更せずともOracleへの接続が可能となります。

 

タイトルとURLをコピーしました