• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:adoのループについて カレントレコードについて)

ADOのループについて:カレントレコードに関する質問

このQ&Aのポイント
  • ADOのForループについて質問があります。1からレコードの総数までループする際、RecordCountプロパティを使用すると、強制的にMoveFirstが実行されるのでしょうか?
  • 具体的には、For i = 1 To rs.RecordCountというコードを使用していますが、この部分をFor i = 1 To rs.RecordCountとrs.MoveFirstというコードに変えた場合、同じ意味になるのでしょうか?
  • RecordCountプロパティに関するADOのヘルプを調べましたが、この件に関する記述は見つかりませんでした。ご回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • seastar3
  • ベストアンサー率69% (99/142)
回答No.1

難しく考えずに、最初にTテーブルを開いた段階だから、一番先頭のレコードが取り扱えると言うことです。 ご提案のコードは、繰り返す度に最初のレコードに戻ってしまいますから、レコード件数だけ最初のレコードの最初のフィールドが表示されます。しかも、無駄に次のレコードに進みます。 したがって、.MoveFirst メソッドをFor ループの前で指定し、 rs.MoveFirst For i = 1 To rs.RecordCount Debug.Print rs.Fields(0).Value rs.MoveNext Next とすれば、お考えの通りの動作になります。 ちなみに最初に扱いたいレコード番号を指定する場合は、.Move メソッドを用いて、 rs.MoveFirst rs.Move 9 と書けばカレントレコードが10番目のレコードに切り替わり、このレコードを取り扱える状態になります。

qmevlytuyp
質問者

お礼

ご回答ありがとうございます。

関連するQ&A