メイン画像

VBScript - Recordset の使い方

VBScript - Recordset の使い方


Recordset には検索結果が格納される。

検索結果へのアクセスは1レコードずつ行う。

現在のレコード位置が、先頭レコードより前にあるなら BOF プロパティが True になる。
最終レコードより後ろにあるなら EOF プロパティが True になる。

現在のレコード位置を変えるには次のメソッドを使う。

  • MoveFirst メソッド: レコード位置を先頭レコードに移動
  • MoveLast メソッド: レコード位置を最終レコードに移動
  • MovePrevious メソッド: レコード位置を一つ前のレコードに移動
  • MoveNext メソッド: レコード位置を一つ次のレコードに移動

先頭レコードにあるときに MovePrevious メソッドを実行、または最終レコードにあるときに MoveNext メソッドを実行するとエラーになる。
BOF / EOF プロパティを使って実行を制御すること。

レコード位置の初期値は先頭レコードである。
よって、だいたいのパターンは EOF プロパティと MoveNext メソッドの組み合わせでカバーできるはず。

'最終レコードになるまでループする
Do While Not rst.EOF
  'TODO: 検索結果を使った処理を書く

  '次のレコードへ移動
  rst.MoveNext
Loop

現在のレコードの各カラムには Recordset.Fields でアクセスする。

名前またはインデックスを使ってアクセスできる。

レコードが持つカラムの総数は Recordset.Fields.Count で取得できる。

Fields のインデックスには 0 からの連番が割り振られる。
0 ~ Count プロパティ -1 とすると、すべてのカラムを処理できる。

Do While Not rst.EOF
  Dim index
  For index = 0 To rst.Fields.Count - 1
    WScript.Echo rst.Fields(index).Value
  Next

  rst.MoveNext
Loop

 

For Each…Next ステートメントを使ってもよい。

Do While Not rst.EOF
  Dim tmp
  For Each tmp In rst.Fields
    WScript.Echo tmp
  Next

  rst.MoveNext
Loop

アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事