IT関連

AS400/IBMi からデータを取得 ExcelVBA VB.NET設定編

投稿日:2018年9月7日 更新日:

注意

これは私の環境下における私の備忘録です。お使いの環境によっては内容が異なる場合があります。システム管理者でない方は絶対にやらないでください。システムにはログが残るものなので、万が一があればクビになるかもしれません。私は何も責任を負いませんのでご了承のうえご覧ください。

 

環境

普通AS400は企業にしかありませんので企業のPCということで。

この話のお題はExcelなので、WindowsPCのExcel上にAS400のデータをダウンロードしたいという話です。

設定するものはユーザーPCです。AS400には一切触りません。

 

使うもの

まずパソコンにODBCドライバーの導入が必要です。

クライアントアクセスというAS400にアクセスするエミュレータをインストールすればODBCドライバーは勝手に入ります(インストールのときODBCを利用する選択が必要です)

インストーラーは管理者の方が持っているでしょう。

 

ODBCが入っているかの確認

Winキーを押すと出てくる「ここに入力して検索」にodbcと入力してエンターキーを押します。するとODBCデータソースアドミニストレータというのが出てきます。

 

クライアントアクセスがないときはこんな感じです。

 

クライアントアクセスをインストールしたらこんな感じです。Client Access ODBC Driverと、iSeries Access ODBC Driverの2つが入りました。

 

さらにパッチを当てると、IBM i Access ODBC Driverも入りました。合計3つ。違いが解りませんが、私はパッチ時にインストールされた、このIBM i Access ODBC Driverを使うようにしています。

 

エクセル側で設定

  1. Microsoft Visual Basic for Applications Editor(VBE)を開く
  2. ツールの参照設定を開く
  3. Microsoft ActiveX Data Objects 2.8 Libraryにチェックを入れる

以上。これをやらないとADODBクラスが使えないので、下記コードはいくらやっても動きません。ちなみにバージョンは2.8以外にも6.1とかあるけど、違いがよく解りません。

 

VB.NETの設定

VB.NETも同じような感じ。

  1. プロジェクトタブ
  2. 参照の追加
  3. COMタブ
  4. Microsoft ActiveX Data Objects 2.8 Libraryを選ぶ

 

サンプルコード(VBA)

セルA1を起点にテーブルのデータをバチコーンと張り付けるコードです。

 

  • マシンノアイピーアドレス(AS400のIPアドレス)
  • ログインアイディー(データベースへのログインID)
  • パスワード(データベースへのパスワード)
  • エスキューエル(SQL文)

この4つは環境によって違うので、適当なものに替えてください。システム管理者なら解るはずです。

 

SQL文は簡単なので勉強してください。ちなみに書くと、

sSQL = “SELECT * FROM ライブラリ名.ファイル名”

こんな感じです。普通SQL文の末尾にはセミコロン「;」をつけるものですが、エクセルの場合は付けたら動きません。

sSQLとかoADOcnとかoRstなどは変数名なので、もっと解りやすい文字に変更しても大丈夫です。

Provider=IBMDA400は決まり文句のようです。

cells(1,1)を変更すれば、貼り付けの起点をずらすことができます。CopyFromRecordsetがレコードを全件一気に張り付ける命令ですが、カラム名は張り付きません。あくまでレコードだけです。

 

 

データベースOPENとテーブルOPENの2つがあります。

データベースOPENはデータベースそのものなのでログイン情報が必要、テーブルを開く場合はテーブルを指定する必要があるのでSQL文が必要、そういうことです。

データベースを開き、テーブルを開いた後、レコードやカラムに対して処理を行っていく手はずということです。

 

 

ループ文で1行1行取得したり、カラム名やCOLHDG名を取得したり、クラス化したり、いろいろできますが、これは設定編なのでこの辺で。

VB.NETのサンプルコードはありません。まぁ大体似たようなものです。

スポンサーリンク




スポンサーリンク




-IT関連
-, , ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

AS400/IBMi 無料でWeb化 GUI化 オープン化 Linuxサーバ構築編 1/3

とりあえず前回の回までで、XAMPP環境でAS400のGUI化を構築して運用する手順は完成しました。 AS400を 無料でWeb化 GUI化 オープン化 PHP/Laravel開発編   し …

AS400/IBMi Laravel Ajax通信 エラー419 CSRFトークンの設置 JavaScript

基本私の記事はIBMi/AS400をベースにやっています。ご了承のほど。   LaravalではPOST通信時にCSRFトークンを送らないといけないのはすでに知っている。   なの …

AS400/IBMi View(ビュー)を作成したり削除したり一覧表示する

素人の備忘録なので、あまりよく解っていませんが、ビューの作り方です。 なんでViewを作る必要があるのかすら不明です。知ってる人は逆にコメント欲しいです。   思っていることは、論理ファイル …

Laravel 値をViewテンプレートに渡す

MVCで値が渡っていく流れがよく解らなかったので忘備録。 モデルは含まれません。   コントローラーからViewに渡す アクセス [crayon-5fc4d45001d08288851439 …

Windows アンインストールの形跡調査

Windowsはある程度のログを残しているので、イベントや警告やインストールやアンインストールの情報など取ることができる。   やり方は 「Winキー」+「Rキー」を押し 小窓に「perfm …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に