- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:実行時エラー3021)
実行時エラー3021とは?ADOでのループ処理における問題の解決方法
このQ&Aのポイント
- ADOを使用してループ処理を行っている際に発生する実行時エラー3021とは、次のレコードが存在しない場合に発生するエラーです。
- 具体的には、ループ処理の中で次のレコードに進むために `rs.MoveNext` を使用している際に、次のレコードが存在しない状態(EOF=End of File)になっている場合にエラーが発生します。
- このエラーを解決するためには、ループ処理の前にレコードセットを開く処理を行う必要があります。また、ループ処理の中でEOFのチェックを行い、次のレコードが存在する場合にのみ `rs.MoveNext` を実行するようにします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
------------------------------------------------ forループの判定は nextで実行されます For i = 1 To rs.RecordCount - 1 番号 = rs("番号") rs.MoveNext Next
その他の回答 (1)
noname#206655
回答No.1
すみません、検証してませんが、MoveNext でレコードが最終を越えたとき出るエラーです。 でも、for i=1 から始まってますので、問題ないと思いますが、MoveNextの戻り値が「偽」でExitするようコーティングした記憶があります。 なので、For 文ではなく、Do 文で検証します。
質問者
お礼
どうもありがとうございました。
お礼
どうもありがとうございました。