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 *

関連記事

キャノン えらんでマイプリントですぐに印刷される場合の設定

キャノンにえらんでマイプリントという、どうでもいい機能がある。 基本はキャノンの人間が設定して帰るが、新しいパソコンに買い替えたとたんその機能が効かなくなる。 それは複合機もさることながら、PC側にも …

AS400/IBMi QRYプログラムからSQL文を生成

あまり意味ないかもしれないけど、備忘録。 使用しているQRY/400の定義からSQL文を逆算して出力する方法。   まずSQLソースファイルを作る。逆算したSQL文を置く場所ですね。 CRT …

Windows10で画面が真っ暗になってマウスカーソルだけになる件

私は某企業でシステムエンジニアをやっていますが、最近Windows10の不具合をよく聞きます。 Windows7からWindows10にアップグレードしたものや、新規で買ったものも両方とも。 &nbs …

WordPress リカバリー まっさらにして戻ってこれたぜ

先日からブログをやっているが、投稿を重ねれば重ねるほど、ぶっ壊れたときに復旧できるのかが心配になってきた。さくらVPSは、サーバのSSDがぶっ壊れたがデータは知らんという事例があるようだ。ちゃんとバッ …

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

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

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に