- ベストアンサー
※ 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のヘルプを調べましたが、この件に関する記述は見つかりませんでした。ご回答よろしくお願いします。
- みんなの回答 (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番目のレコードに切り替わり、このレコードを取り扱える状態になります。
お礼
ご回答ありがとうございます。