AccessでDB2のDBを見られるようにする

[前提]

コントロールパネル > 管理ツール > データソース(ODBC)> Driversタブ
IBM DB2 ODBCDriver のバージョン・Companyなど、
正しい値が入っているかどうかチェック。
"not marked"と表示されている場合は、後述の
「システムエラー126の解決方法」を先に行う。

↑のエラーは、古いDB2(Ver7)をアンインストールして
新しいDB2クライアント(Ver8)をインストールした際、
レジストリの内容が書き換わらなかったため起こった。


[AccessDB2のDBを見られるようにする手順]

1. Access起動 → 新しいDBを作成 >「空のDB」
任意ファイル(デフォルトでは"db1.mdb")を指定して「作成」
2. ファイル > 外部データのとりこみ > テーブルのリンク
3. 「ファイルの種類」で"ODBC Databases"選択
4. "Machine DataSource" タブで "New"
User DataSource → IBM DB2 ODBC DRIVER → 完了

※ このときシステムエラー126:「IBM DB2 ODBC DRIVERをロードできない」がでて
続行できない。→ 後述の方法で回避。

5. 4.で「完了」とすると「ODBC IBM DB2 ドライバー 追加」という
ウィンドウがあがる。このウィンドウで下記を設定。
データ・ソース名:CZD00T
データベース別名:CZD00T
「OK」
6. 5. で「OK」とすると「DB2 データベースに接続」という
ウィンドウがあがる。このウィンドウでユーザID、パスワードを設定


7. テーブルのリストが表示されるので、操作対象のテーブルを選択
8. リンクされると、ウィンドウ"ファイル名 :データベース" に
選択したテーブルの名が表示される。

(参考リンク)
OracleAccess
http://www.venus.dti.ne.jp/~yoshi-o/RDB/Oracle-Access-NewTableMake.html



システムエラー126の解決方法

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q260558

[原因]
レジストリの情報 および ODBCINST.INI での参照先が、以前に
アンインストールしたDB2(Ver7)の状態のまま書き換わっていなかった。

[解決策]

次の二つが必要
レジストリの内容を書き換える
・ODBCINST.INIの内容を書き換える

レジストリの内容を書き換える
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\IBM DB2 ODBC DRIVER

(古い + 今となっては誤り)
Driver = C:\db\BIN\DB2CLI.dll
Setup = C:\db\BIN\DB2ODBC.dll

(新しい + 正しい)
Driver = C:\Program Files\IBM\SQLLIB\BIN\DB2CLI.dll
Setup = C:\Program Files\IBM\SQLLIB\BIN\DB2ODBC.dll

・C:\WINNT\ODBCINST.INI の内容を書き換える

(古い + 今となっては誤り)
Driver = C:\db\BIN\DB2CLI.dll
Setup = C:\db\BIN\DB2ODBC.dll

(新しい + 正しい)
Driver = C:\Program Files\IBM\SQLLIB\BIN\DB2CLI.dll
Setup = C:\Program Files\IBM\SQLLIB\BIN\DB2ODBC.dll

マシンの再起動は不要。

[確認]
コントロールパネル > 管理ツール > データソース(ODBC)> Driversタブ
IBM DB2 ODBCDriver のバージョン・Companyなど、
正しい値が入っているかどうかチェック。
正しく修正されていない場合は、"not marked"と表示される。


[その他]
DB2データエディタ2種(便利そうだけれどもDLページのリンク切れ?でダウンロードできない)
・SWING
http://www-106.ibm.com/developerworks/db2/library/techarticle/0206chaitgal/0206chaitgal.html#resources
・Webアプリケーション
http://www-6.ibm.com/jp/software/data/developer/library/techdoc/guiweb.html#10