Microsoft Excel からの ODBC 接続 - IBM

Microsoft Excel からの ODBC 接続
1 概要
ODBC を使用した Microsoft Excel(以下 Excel)からの IBM i データベースへのアクセス

Excel からは読み込みのみ可能(Read only)

VB や Delphi を使用すれば直接 IBM DB2 for i のデータ更新も可能
必要なライセンスプログラムは IBM i Access for Windows(5770-XW1) もしくは IBM i Access Client
Solutions のみ
Excel で「データ」→「その他のソースからデータを取り込み」→「Microsoft Query」を選択し
ます。
“データベース”で事前に設定した IBM DB2 for i の名前を指定します。
テーブル名やカラム名を指定します。
Excel に IBM DB2 for i のデータが返されます。
2 ODBC のセットアップ手順
以下にある 1 から 6 の順序で実行します。
なお、今回の作業手順で使用している PC は日本語 Windows 7 と英語 Excel となっているため、
一部英語表記のみとなっていますが、なるべく分かりやすい解説に努めていきます。
2.1 事前準備
Excel から IBM i データベースにアクセスするには、PC に事前に ODBC ドライバーを導入して、
IBM i への ODBC データ・ソースを定義しておく必要があります。ODBC ドライバーは IBM i
Access for Windows や IBM i Access Client Solutions と同時に導入することが出来ます。
2.2 ODBC ドライバーの導入
ODBC ドライバーは IBM i Access のオプションとして導入されます。IBM i Access を通常セットア
ップするか、選択セットアップから以下のコンポーネントを指定することで ODBC ドライバー
が PC に導入されます。
IBM i Access for Windows の導入画面より
「データ・アクセス」→「ODBC」
2.3 ODBC 設定手順
・手順 1: ODBC データソースの追加
IBM i に対する ODBC データソースを追加します。
Windows のプログラムの「管理ツール」→「データソース(ODBC)」を実行します。
ユーザーDSN タブまたはシステム DSN タブを開き追加ボタンを押します。
ユーザーDSN は現在ログインしているユーザーのみの設定、システム DSN はその PC 全ユーザ
ーの設定となります。
ODBC ドライバーを選択します。
「iSeries Access ODBC Driver」を選択し完了ボタンを押します。
ちなみに、「Client Access ODBC Driver」との違いは、機能面は全く同等であり、既存アプリケ
ーションとの互換性のために存在します。
また、ODBC ドライバー名は IBM i のバージョンによって変更される場合がありますし、
「Client Access ODBC Driver」も今後無くなる可能性があります。
IBM i Access for Windows ODBC セットアップ画面が表示されます。
以下の項目を入力します。
・一般タブ:データ・ソース名
例: AS400SYS
接続する IBM i の名称を任意で設定
・一般タブ:システム
接続するシステムを選択
・サーバータブ:ライブラリー・リスト
Excel からアクセスするライブラリー(スキーマ)を追加します。
例:SALESLIB
ライブラリーの入力が終わったら「OK」ボタンを押します。
以上で ODBC データ・ソースの定義が完了しました。
今回はシステム DSN にシステム:LUCY02 への接続が設定されました。
2.4 ODBC のパフォーマンス・チューニング
ODBC データソースアドミニストレーター画面のパフォーマンスタブにてパフォーマンス・チ
ューニング用のパラメーターが用意されています。
実際に運用をしてみてパフォーマンス・トラブルがある場合は、こちらの画面で ODBC の設定
を変更し、パフォーマンス・チューニングを行うことが出来ます。
例えば、レコード・ブロック化サイズでは ODBC でアクセスするデータの転送量に応じて変更
するとパフォーマンスが向上する場合があります。最適なサイズはアプリケーションやデータ
転送量によって変化するため、事前にテストを実行して最適な値を決定する必要があります。
2.5 EXCEL から MS QUERY を起動して IBM I にアクセスする
次に Excel を起動します。
Excel のメニューから、「データ」→「その他のソースからデータを取り込み」→「Microsoft
Query」を選択します。
データ・ソースの選択画面が表示されます。
作成した ODBC データ・ソース名を選択して「OK」ボタンを押します。
セッションが無い場合はユーザープロファイルとパスワードの入力が必要となるので認証をし
てください。
MS Query のウィザードが開始されます。
テーブル HINMSP を展開し、必要なカラムをダブルクリックし追加します。
全てのカラムを指定することも可能です。
カラムの選択が終わりましたら、「次へ」ボタンを押します。
ちなみに、テーブルは物理ファイルや論理ファイル、カラムはフィールドを指します。
フィルター機能にてデータの抽出が可能です。
複数指定することで、限定したデータの抽出することも可能です。
また、指定せずに全てのレコードを抽出することも可能です。
指定したフィールドでのソートが可能です。
指定しないことでソートせずに抽出することも可能です。
Excel に抽出したデータを添付するか、そのまま MS Query 上で表示するか選択出来ます。
今回は Excel でデータを表示したいので、Excel にデータを返すを選択して「完了」ボタンを押
します。
Excel のどのワークシートにどのようなフォーマットで戻すか指定するウインドウが表示されま
すが、今回は既存のワークシートの A1 カラムにデータを配置します。
Excel に指定した物理ファイルの抽出されたデータがコピーされました。
以上で、Excel から DB2 for i にアクセスする手順は終了です。
2.6 ADO.NET について
Excel ではデータは読み取りモードでアクセスするため、IBM i 上のデータベースを更新するこ
とは出来ません。MS Access や VB のプログラムから ODBC アクセスをすると IBM i 上のデータ
ベースを更新することが出来ます。
また、VB アプリケーションから ADO.NET という高速なアクセス方法も使用することが出来ま
す。