値が複数のテーブルに存在する場合に、Access フォームで重複エントリを防止する

値が複数のテーブルに存在する場合に、Access フォームで重複エントリを防止する

2 つのテーブルと 1 つのフォームを含む Access データベースがあります。

フォームは、データ入力の目的でテーブルの 1 つにリンクされています。

私は持っている:

  • LIVEDBこれはライブ顧客情報の表です。
  • LIVEDBINPUT情報を入力するフォームLIVEDB
  • CANCELLATIONDBこれは単なるテーブルです。誰かがキャンセルすると、そこから切り取っLIVEDBて に貼り付けるだけですCANCELLATIONDB

フォーム内の重複を防ぐためのさまざまなルールがありますが、最近、フォームがテーブルからの重複を防止しておらず、テーブルのみが重複を防止しているLIVEDBINPUTという問題が発生しました。LIVEDBINPUTCANCELLATIONDBLIVEDB

LIVEDB電話番号がすでに表に表示されている場合は、フォームに電話番号を入力できないようにしたい。またはテーブルCANCELLATIONDB

次のような内容のメッセージボックスが表示されるように設定できれば、「この電話番号は既にLIVEDBまたはに存在しますCANCELLATIONDBそして、ユーザーをそのレコードに移動するか、削除するかを選択できるオプションがあれば理想的です。

1 つのテーブルの複数の列でこれを実現する方法については多くの情報を見つけましたが、両方のテーブルからの重複を防ぐ方法、つまり、フォームが 2 つのテーブルのいずれかに既に存在する重複を作成しないようにする方法がわかりません。

答え1

テーブルとテーブルUNIONの両方に保存されているすべてのレコードを生成するクエリを作成し、新しいレコードを保存する前にこのクエリで既存のレコードをテストします。LIVEDBCANCELLATIONDB

CANCELLATIONDBテーブルの構造が自分のテーブルと同一であると仮定するとLIVEDB(レコードを一方から他方へ移動しているため)、UNIONクエリは次のようになります。

SELECT * FROM LIVEDB UNION SELECT * FROM CANCELLATIONDB

関連情報