データベースを作成すると、誤って同じデータが登録されることが多々あります。また、データを移行する際にも重複を見落として登録してしまうといったケースも出てきます。
これらのエラーチェックは、別途インターフェースにチェック機能を持たせることである程度の回避はできますが、それでも100%除去できるとは言い切れません。
このため、データに重複がないかを調べる機会が出てきますが、1つずつ調べるとなると非常に手間がかかり、またヒューマンエラーをゼロにすることは困難なため見落としも発生する可能性が高くなります。
そこで、今回はAccessのクエリウィザードである「重複クエリ ウィザード」について紹介をします。この機能を用いれば、テーブルやクエリを対象として重複レコードがないかを簡単に調べることができるようになります。
サンプルデータ
今回サンプルテーブルとして「重複クエリの作成方法」という名称のテーブルを作成し、表1に示すようにフィールド名、データ型を設定します。
表1 重複クエリの作成方法テーブルのフィールド名及びデータ型
フィールド名 | データ型 |
氏名 | 短いテキスト |
生年月日 | 日付/時刻型 |
所属 | 短いテキスト |
続いて、サンプルデータを表2のように登録します。
表2 サンプルデータ
氏名 | 生年月日 | 所属 |
鈴木 太郎 | 2010/01/02 | サッカー部 |
渡辺 花子 | 2010/03/03 | 茶道部 |
山田 一郎 | 2009/12/02 | 野球部 |
鈴木 太郎 | 2010/01/02 | サッカー部 |
鈴木 太郎 | 2009/08/05 | テニス部 |
重複クエリウィザードによる設定
さて、サンプルデータの登録が終わりましたら、早速重複クエリウィザードを使用してみましょう。
図1に示すように、「作成」タブ→「クエリウィザード」の順にアイコンをクリックします。
続いて、「新しいクエリ」画面で「重複クエリウィザード」を選択し、「OK」をクリックします(図2)。
これで重複クエリウィザードが開きますので、重複データを調べるテーブルまたはクエリを選択します。今回は、サンプルテーブルとして作成した「重複クエリの作成方法」テーブルを選択し、「次へ」をクリックします(図3)。
サンプルテーブルである「重複クエリの作成方法」テーブルには「氏名」、「生年月日」及び「所属」のフィールドがあり、これらの内どれを重複データのチェック対象フィールドに設定するかを選択します。
まずは、同姓同名かつ生年月日が同じ人がいないかを調べるための設定をしてみます。図4に示す画面から、「氏名」と「生年月日」を選択し、それぞれ「>」ボタンをクリックして「選択したフィールド」へ移動させます(図5)。
次に、クエリの結果に先に選択したフィールド以外で表示するフィールドを選択します(図6)。
図7に示すように、出力するフィールドを選択し「>」ボタンをクリックして「選択したフィールド」へ移動させ、「次へ」をクリックします。
これで、一通りの設定が完了したため作成した重複クエリの名前を最後に決定します。図8に示すように、名前を入力後、「完了」をクリックします。
以上で、重複クエリの作成が完了しました。作成したクエリの結果が図9に示すように表示されると思います。
このように、重複クエリを活用することで、同一の値が入力されているレコードを効率良く抽出することができます。
重複クエリウィザードのフィールド設定を変更した場合
さて、先に紹介した条件は「氏名」及び「生年月日」で同じレコードがないかのチェックでした。これを「氏名」だけで同一レコードがないかを調べるとどのようになるかも確認しておきましょう。
基本的な設定条件は同じですが、重複を調べるフィールドの設定を図10に示すようにします。
図10に示すように、「氏名」フィールドだけで重複チェックをしたことから、この場合は生年月日の異なる「鈴木 太郎」も抽出されるようになりました。
このように、条件を上手く変更させることで重複チェックをスムーズに行えるようになると思います。
まとめ
今回は、Accessを用いて重複レコードの有無を調べる方法として重複クエリの作成方法を紹介しました。データベースを運用していくと、自ずと重複レコードが発生する機会が出てきますので、都度データを整理していくと良いかと思います。
スポンサーリンク
コメント