AS400/IBMi からデータを取得 ExcelVBA カラム名COLHDG取得編

IT関連

注意

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

 

内容

前回の記事で載せた続きです。テーブルの内容を全件引っ張るだけではつまらないので、カラム名やCOLHDG(注記)も引っ張る方法を載せます。

 

下記が前回のコードです。

 

CopyFromRecordsetという命令でテーブルのレコードを全件バチコーンと張り付けましたが、今回もそれを使います。

1行目にカラム名、2行目にCOLHDGを挿入しようと思いますので、CopyFromRecordsetは3行目を指定して、3行目にレコードを張り付けるようにします。

 

name age birth
名前 年齢 生年月日
田中 29 2018/09/10
渡辺 44 1956/09/10

こんな感じですね。1行目にカラム名、2行目にCOLHDG、3行目以降にレコードです。

 

サンプルコードは、

 

概要は、まずCopyFromRecordsetで3行目の1列目に全レコードの値を張り付けた後に、各カラムの情報を1つ1つ取得して、1行目と2行目に代入していきます。

ただそれだけです。

 

 

変数のネーミングセンスとか気にしないでください。私もネットで得た知識の備忘録なので。

大事なことは

  1. oRstがテーブルのオブジェクト。
  2. oRst.Fields(カラム名もしくは列番号)で、カラムのデータにアクセスできる。
  3. Properties(7)でカラム名、Properties(3)でCOLHDGの値を取得できる

です。Fieldsとか略せるみたいですが、一応正式に書いておきます。

 

oRstがテーブルのデータですが、1行1行取り出す場合は、こんな感じです。

 

Do~Loopをぐるぐる回る間にテーブルのレコードを読んでいくわけですが、MoveNextが行送りの命令です。これを忘れると無限ループしますのでご注意を。

コメント

タイトルとURLをコピーしました