映画のエンドロール観る派?観ない派?

ADOの勉強したばっかりで、あまり詳しくありませんのでよろしくお願いします。
DataGridを使ってある条件で抽出しています。その抽出したものを更新したいのですが、
Do
rs!分類ID = text1
rs.Update
rs.MoveNext
Loop Until rs.EOF
という命令を書くと、いいような気がするのですが、なぜか抽出したデータが一個おきに書き換わります。
でも、
Do
rs!分類ID = text1
rs.Update
rs.MoveNext
 if rs.EOF then
rs.Previous
END IF
Loop Until rs.EOF
と命令するとすべてのデータが書き換わります。
なぜなんでしょうか?疑問です。
VB6.0、ACCESS2000です。

A 回答 (1件)

LOOPの後に条件を入れると最後のデータが更新されないのでは?。

DOの後にRS.Editが必要です。よって以下のようにするのが正当だと思います。
Do Until rs.EOF
rs.Edit
rs!分類ID = text1
rs.Update
rs.MoveNext
Loop
それと2番目の構文だと最後のデータに来たら一つ前に戻ると命令していたら終わらないんでは?
いずれも確認していないのでわかりませんが。

この回答への補足

早々に回答ありがとうございます。
抽出しないでrs.Updateするときには、
IF rs.EOF then
rs.MovePrevious
End If
があるとあきらかにおかしいですよね。
抽出せずにUpdateするときには、
do
rs!分類ID = text1
rs.update
Loop until rs.EOF
でうまく動くのに抽出してからrs.Updateするときにはこれがないとうまく動かないのです。。。。
へんですよね~

補足日時:2003/11/04 18:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!