- 締切済み
VB6.0DataGridでのUpdate文で疑問?
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です。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- jazzlover
- ベストアンサー率0% (0/0)
回答No.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するときにはこれがないとうまく動かないのです。。。。 へんですよね~