マイクロソフトアクセスで広がる世界

アクセスのTIPS集

削除フラグを利用したレコード削除の仕組み

レコードを削除する際に、即時に削除してしまうよりも、一時的に削除と同じ状態-通常は表示されない等-にしておいて、時間を経てから削除 する方がベターでしょう。
次の図はその比較のフロー図です。上段は一度に削除する場合で、削除してしまうとレコードは失われます。下段は非表示状態にしておく方法で、 やはり削除してよいと判断したら削除し、また利用したい場合には復活をさせるというように、いずれかの選択ができます。

比較のフロー図

作成手順の概要

  1. レコードのテーブルに「削除フラグ」フィールドを設けます。データ型はyes/no型にし、削除するレコードにチェックを入れるようにします。
  2. 表示フォームやレポートには「表示フラグ」にチェックが入っているレコードを除くようにしたクエリーをレコードソースにします。
  3. 削除対象フォームを作成して削除フラグのついたレコードのみを表示できるようにします。このフォームには完全に削除するためのコマンド ボタンと削除フラグコントロールを設けて、削除または復活の処理を行えるようにします。

参考例

  1. テーブルに「削除フラグ」フィールドを追加した。
    テーブルに「削除フラグ」フィールドを追加した図
  2. フォームに「削除フラグ」コントロールを追加した。フォームのレコードソースは「削除フラグ」フィールドにチェックがないものだけに設定する。 これによりフォーム上は表示されないので、削除したことと変わらなくなる。
    フォームに「削除フラグ」コントロールを追加した図
  3. 削除フラグレコードの表示フォームを作成した。「レコードの削除」ボタンも設置する。このボタンによりレコードは完全削除される。 また「削除フラグ」コントロールも設置し、チェックを外すことでレコードを復活できるようにします。
    削除フラグレコードの表示フォームの図
  4. 前のフォームのレコードソースでは、削除フラグにチェックが入ったレコードのみを抽出します。
    削除フラグフィールドのチェックを抽出条件にしたクエリーの図
  5. これで完成。通常フォームを開いて削除フラグにチェックを入れてみよう。そして削除フラグフォームを開くと該当のレコードのみが表示されている。 完全に削除してよかったら、削除ボタンで削除しよう。尚、レコードを復活させたいときは「削除フラグ」のチェックを外せばよい。
    削除フラグレコードの表示フォームに削除レコードが表示されている図

(この項終わり)