• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:実行時エラー3021)

実行時エラー3021とは?ADOでのループ処理における問題の解決方法

このQ&Aのポイント
  • ADOを使用してループ処理を行っている際に発生する実行時エラー3021とは、次のレコードが存在しない場合に発生するエラーです。
  • 具体的には、ループ処理の中で次のレコードに進むために `rs.MoveNext` を使用している際に、次のレコードが存在しない状態(EOF=End of File)になっている場合にエラーが発生します。
  • このエラーを解決するためには、ループ処理の前にレコードセットを開く処理を行う必要があります。また、ループ処理の中でEOFのチェックを行い、次のレコードが存在する場合にのみ `rs.MoveNext` を実行するようにします。

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

------------------------------------------------ forループの判定は nextで実行されます For i = 1 To rs.RecordCount - 1 番号 = rs("番号") rs.MoveNext Next

FGBXBFTMQT
質問者

お礼

どうもありがとうございました。

その他の回答 (1)

noname#206655
noname#206655
回答No.1

すみません、検証してませんが、MoveNext でレコードが最終を越えたとき出るエラーです。 でも、for i=1 から始まってますので、問題ないと思いますが、MoveNextの戻り値が「偽」でExitするようコーティングした記憶があります。 なので、For 文ではなく、Do 文で検証します。

FGBXBFTMQT
質問者

お礼

どうもありがとうございました。

関連するQ&A

専門家に質問してみよう