本文へジャンプ

System i スペシャリストが教えるV5 ちょっと、イイ話

第18回 ODBCを使用したExcelからののアクセス

Tab navigation

 

ODBCでExcelからDB2 UDB for System i にアクセスする

ここではMS Excelを使用してSystem iのデータベースにアクセスする方法を説明します。

事前準備
MS ExcelからSystem iのデータベースにアクセスするには、PC に事前にODBCドライバーを導入して、System iへのODBC データソースを定義しておく必要があります。
ODBCドライバーはiSeries Access for Windowsの導入と同時に導入することが出来ます。

ODBCドライバーの導入
ODBCドライバーはiSeries Accessのオプションとして導入されます。
iSeries Accessを通常セットアップするか、選択セットアップから以下のコンポーネントを指定することで ODBCドライバーがPCに導入されます。

iSeries Accessの導入画面より
データアクセス → ODBC

実行手順
・手順1 ODBCデータソースの追加
System iに対するODBCデータソースを追加します。
Windowsのコントロールパネルから管理ツールを開始します。
データソース(ODBC)をダブルクリックします。

・手順2
ユーザーDSNタブまたはシステムDSNタブを開き追加ボタンを押します。

・手順3
ODBCドライバーを選択します。

iSeries Access ODBC Driverを選択します。
    ↓
完了ボタンを押します。

※ODBCドライバー名はiSeries Access for Windowsやi5/OSのバージョンによって違う場合があります。

・手順4
ODBCソースの定義画面が表示されます。

以下を入力します。
一般タブデータソース名 任意
(例 AS42588)

システム接続するSystem iの名前

実行手順4

・手順5
サーバータブライブラリーリストExcelからアクセスするスキーマ名を追加します。
例 AS42588
    ↓
OKボタンを押します。

実行手順5

・手順6
ODBCデータソースが追加されます。

以上でODBCデータソースの定義は完了です。

・ODBCのパフォーマンス調整について
手順6のODBCデータアドミニストレーター画面パフォーマンスタブを開くとパフォーマンスチューニング用のパラメーターが表示されます。

業務運用してパフォーマンス上問題がある場合はこの画面からODBCの設定を変更して、チューニングを行うことが出来ます。

例えば以下の レコードブロック化サイズなどはODBCでアクセスするデータのサイズに応じて変更するとパフォーマンスが向上する場合があります。最適なサイズはアプリケーションやデータ量によって変化するためテストを実行して最適な値を決定するひつようがあります。
ODBC のパフォーマンス調整について2

・手順7 ExcelからMS Query(MS クエリ)を起動してSystem iにアクセスする
次にMS Excelを起動します。
MS Excelのメニューから
データ → 外部データの取り込み → 新しいデータベースクエリを選択します。

・手順8
データソースの選択画面が表示されます。
手順1~6で作成したODBCデータソース名を選択してOKボタンを押します。
実行手順8

・手順9
MS Queryのウィザードが開始されます。
テーブルTOKMSPをクリックして選択します。

・手順10
テーブル内の検索したい列を選択してボタンを押します。

右側のウィンドウに列が追加されます。

・手順11
カラムのデータによってレコード選択することもできます。

ここでは何も指定せずにそのまま次へボタンを押します。

・手順12

並べ替え順序も指定可能です。
ここでは何も指定せずにそのまま次へボタンを押します。

・手順13
ウィザード完了画面が表示されます。

そのまま完了ボタンを押します。

・手順14
Excelのどのワークシートにデータを戻すか指定するウィンドウが表示されます。
実行手順14
そのままOKボタンを押します。

・手順15
ExcelにSystem iのデータが返されます。

内容を確認したらExcelを終了します。
ファイルは保管しないを選択します。

以上でExcelからDB2 UDB for System i をアクセスする手順は完了です。

ODBC,ADOについて

MS Excel(MS Query)ではデータは読み取りモードでアクセスするのでSystem i上のデータベースを更新することは出来ません。
MS AccessやVBのプログラムなどからODBCアクセスをするとSystem i上のデータベースを更新することが出来ます。
またVBアプリケーションなどからADOというより高速なアクセス方法も使用することも出来ます。