Tips

DELETE RECORDでカレントセレクションを削除できない理由

日付2007/12/06
ID47729 (英語原文参照)
バージョン2004
プラットフォームMac & Win

DELETE RECORDはカレントセレクションに反映されません。

例えば、選択されたレコードが10レコードあるときに10レコードすべてにDELETE RECORDを実行した後でも、Records in selectionはカレントセレクション中に10レコードが存在することを示します。この10レコードを調べると、フィールドは全てブランクになっています。もし次の例のようなコードを実行すると際限なくループしてしまうことになります。

Repeat
DELETE RECORD([some table])
NEXT RECORD([some table])
Until(Records in selection([some table])=0)

DELETE RECORDはカレントセレクションに影響しないために、このループは終了することがないのです。このような事態に陥らないようにするためには、DELETE SELECTIONを使います。