Quantcast
Channel: OKWAVE 最新質問(Visual Basic/257)【本日】
Viewing all articles
Browse latest Browse all 6510

実行時エラー3021「BOFとEOFのいずれかTR

$
0
0
Sub test() Set cn = CurrentProject.Connection rs.Open "T分類", cn, adOpenStatic, adLockPessimistic rs.Filter = "中分類 = '不明' And (大分類 <> '不明')" For i = 1 To rs.RecordCount str大分類 = rs("大分類") rs("中分類") = str大分類 & "(不明)" rs.Update rs.MoveNext Next rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub アクセスADOで上記のようなコードなのですが よく意味の分からないエラーが発生します。 コードの内容は 大分類が不明ではなく中分類が不明なら 中分類のレコードに大分類の値+不明にする です。 例えば該当のレコードが8レコードあれば i=5の時に、 実行時エラー3021「BOFとEOFのいずれかTRUE になっているか、 または現在のレコードが削除されています。 要求された操作には、 現在のレコードが必要です。」 が発生します。 規則としては rs.RecordCountの半分の値までは大丈夫ですが rs.RecordCountの半分+1の時に 上記のエラーが発生します。 ADOでデータの追加をする時にAddNewメソッドを入れ忘れた場合も 上記と同じエラーが発生しますが 今回のコードはフィルターをかけ 更新したいレコードを掴んでいるので AddNewメソッドは不要だと思っています。

Viewing all articles
Browse latest Browse all 6510

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>