アクセスデータの重複確認方法と対策

このQ&Aのポイント
  • アクセスデータの重複を確認したい場合、顧客情報の名寄せ(名前と郵便番号の一致確認)を行い、重複データを排除することが重要です。
  • また、顧客情報の修正をオープンにする際には、入力データの重複チェックや適切なエラーメッセージ表示などを実装することで、重複データの発生を防ぐことができます。
  • アクセス初心者の方には、データベースクエリを使った重複データの検索方法や、データ管理の基本的なポイントなどを学習することをおすすめします。
回答を見る
  • ベストアンサー

アクセスに関して、データの重複を確認したい

ご覧いただき、ありがとうございます。 現在、アクセスの勉強中なのですが、 どうしてもわからない点がありましたので、ご質問させていただきます。 現在、アクセスを使用し、ある顧客情報の管理を行っております。 顧客情報の登録をする際には、名寄せを行い(名前と郵便番号) 重複をさせないようしております。 この顧客情報は、管理するお客様の方でも修正することができるのですが、 最近、お客様の方で修正をしてしまい、 名前と郵便番号が一緒のデータが発見されました。 他にもそういったデータがあるのではと探し始めたのですが、 アクセス初心者のため、足踏みしております。 イメージとしては、 ID  顧客名  郵便番号  電話番号 12  山田太郎  1111111  0120222222 こういったテーブルになっております。 情報が少なく、申し訳ございませんが、 ご回答いただけますと幸いです。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.3

もっといい方法があると思いますが、一つの提案です 顧客名と郵便番号の二つのフィールドを主キーとしたテーブル「顧客重複チェック」を作成し、 これに顧客テーブルを追加(insert)します。 「顧客」と 「顧客重複チェック」をIDと顧客IDにリレーションシップで関連つけます。 ※結合プロパティー:顧客の全レコードと顧客重複チェックの同じ結合フィールドのレコードだけ含める 2つのテーブルを基にしたクエリーを開くと、顧客重複チェック部分が空白のレコードが重複レコードです 二つのフィールドを主キーにする テーブルをデザインビューで開いてフィールドの左端をshift+クリックで複数選択し主キーをクリック レコードの追加は追加クエリーでも出来ますがVBAだと次のようになります 尚、DoCmd.RunSQL "delete from 顧客重複チェック"は 繰り返し実行できるように顧客重複チェックを初期化する処理です。 Private Sub 重複チェック_Click() DoCmd.RunSQL "delete from 顧客重複チェック" DoCmd.RunSQL ("insert into 顧客重複チェック(顧客名,郵便番号) select 顧客名,郵便番号 from 顧客 ") End Sub

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

http://www.feedsoft.net/access/access-technic/access-technic12.html などに、アクセスでの重複データの確認法の操作が載っています。 Googleで「アクセス データ 重複チェック」で照会すればたくさん記事が出ます。 これは取り立てて、ここへ質問するようなことではないですが。 ーー >情報が少なく、申し訳ございませんが、 質問の背景がよくわからない。 ・質問者がアクセスの全くの初心者なのか ・もっとむつかしいシステムの事情があるのか。 周りに聞く人・アクセス熟達者がいないのか。 ーー (1)新規顧客登録時に会社?側で、プログラムでチェックをするはず。 氏名+郵便番号より氏名+電話坂東番号の方が有効ではないですか、とか (2)定期的に、いろいいろな観点からチェックプログラムを走らせて、重複や氏名変更や住所や電話番号変更(ダイレクトメールの不着など、応対時の確認などで)に注意する必要があると思います。(例 1文字違いの名で同じ住所の人がいないかなどプログラムを作ってチェック。ただし余り重複を重要に考えなくても良い顧客登録なら、やらないだろうが) ーー それと会社・事業者のコンピュターシステムを、素人がいじくるのは危険が多いと思います。業者や、相談できる人や業者を作ることです。 >名前と郵便番号)で名寄せする、と決めたのは、システムの経験者ですか? 事業者の問題をアクセスででも処理するのは、VBAででも処理できることが必要で、質問者がアクセスVBAでも駆使できる域になるまでは要注意。

回答No.1

そもそも、名前と郵便番号で名寄せすれば高い確率で重複すると思います。 サンプルデータであれば顧客名と電話番号では重複しないでしょう。 (本当は住所も欲しいが) 余談はさておき、Accessに詳しくなくても、Excelは多少できるでしょう ID~電話番号の列をコピーしてExcelに貼り付けて 顧客名と郵便番号でソートして 顧客名1番目=顧客名2番目と電話番号1番目=電話番号2番目を ・・・ 顧客名N番目=顧客名N+1番目と電話番号N番目=電話番号N+1番目の 結果を別のセルに求めれば、ID何番と何番が重複しているか分かります。

関連するQ&A

  • 個人情報の入った顧客データを匿名データにつくりかえる方法(アクセス、エ

    個人情報の入った顧客データを匿名データにつくりかえる方法(アクセス、エクセル等) 8桁の個人ID番号、氏名(漢字)、諸情報の入った顧客データがあります。 次のようなかたちです。 39207027,山田太郎,情報1,情報2,・・・ 39207027,山田太郎,情報1,情報2,・・・ 39207027,山田太郎,情報1,情報2,・・・  ・  ・ 39207028,佐藤花子,情報1,情報2,・・・・ 39207028,佐藤花子,情報1,情報2,・・・・ 39207028,佐藤花子,情報1,情報2,・・・・  ・  ・ 39207029,聖徳太子,情報1,情報2,・・・・ 39207029,聖徳太子,情報1,情報2,・・・・ 39207029,聖徳太子,情報1,情報2,・・・・  ・  ・ ここから個人ID、氏名を削除して、匿名IDとするようなデータとしたい。 具体的には、各個人にランダムな数字をわりあてたい。  (その上で、個人ID、氏名の列を削除する) 但し、個人IDには通し番号の要素も入っているおり、 新しい匿名IDにはそれ(現在の通し番号の順序)が引き継がれないようにしたい。 (要は、新しく作った匿名データから、元のデータに戻る可能性を限りなく消したい)。 データ行数は、50,000行程度。 列方向は高々、10数列です。 とりあえず、アクセスのテーブルにデータを入れてあります。 アクセスで上記加工をやる必要はありません (分析はアクセスか、エクセルでやろうと思っています)。 みなさま、だったらどういうやりかたをしますか? 使用ソフトなどを含めて、お教えいただけたら幸いです。

  • ACCESS 入力フォームでテーブルへデータを複数追加する

    自力で問題解決できないのでお願いします。 1画面の入力フォームでテーブルへデータを複数追加をしたいと考えています。 例) ☆ 入力フォーム ________________________________________________________ 顧客番号 [0001] 顧客氏名 [山田太郎] 受付日付 [2008/6/18]   購入商品      えんぴつ      消しゴム      ボールペン                       [ 登録 ] _______________________________________________________________                 ↓ ☆ テーブルデータ _______________________________________________________________ 0001  山田太郎  2008/6/18  えんぴつ 0001  山田太郎  2008/6/18  消しゴム 0001  山田太郎  2008/6/18  ボールペン _______________________________________________________________ 以上のように入力フォーム1画面に対してテーブルのデータが入力分発生するようにしたいです。 VBAは触れないので、できればAccessの対話式で解決できればと思っています。URL等があれば教えてください。 よろしくお願いします。(⌒ ⌒)(_ _)ぺこ

  • 顧客データの結合

    タイトルのとおりで、顧客のデータを結合したいと思っているので、よろしくお願いします。 現在、複数店舗にて顧客情報をネットワークなどで共有せず、店舗・店舗で個々に顧客情報を作成しております。 しかし、店舗毎の顧客情報だと、お客様にも「また新規で登録するの?」などの不満もあり、 また管理する側も重複してしまう顧客の情報が多々あったりし、管理の方が大変になってしまいました。 顧客情報は顧客管理ソフトやその他ソフトなど店舗ごとで違うソフトを使っているのですが、 業者に頼んで結合するのではなく一旦エクセルなどにデータをエクスポートし、なんとか顧客情報の一元化が出来ないかと思っております。 ※各店舗の顧客データは  ・名前  ・住所  ・電話番号  ・性別  ・生年月日  ・売上履歴  ・来店履歴 などのデータがあります。 通しの番号などはないので、名前などで同じ人の情報を1つにまとめたいと思っております。  ファイルA  [名前] [生年月日] [売上履歴] [来店履歴]  [担当]   鈴木  2月1日   3000円   1月1日   山田 田中  3月1日   2000円    1月3日   山田  ファイルB  [名前] [生年月日] [売上履歴] [来店履歴]  [担当]   鈴木  2月1日   5000円   12月22日   木村 太田  5月1日   2000円    1月3日   木村 このようなファイルがあるとして、鈴木の「売上履歴」「来店履歴」 「担当」など項目が同じで、内容が違うデータも結合をし、一つの項目に多数のデータをと思っております。このような結合は可能でしょうか? あまり、このようなことをしたことがなくわからなかったので、質問をさせていただきました。 わかる方がいらっしゃったら、回答のほど、よろしくお願いいたします。

  • アクセスのクエリで重複しているデータについて

    テーブルの一部分のフィールドを使ってクエリAを作成しています。 [クエリA] 番号 氏名  郵便番号 住所     電話番号 子供 1  田中守  111-0000 東京都・・・ 000-0000 章 2  佐藤健  122-0001 神奈川県・・・ 001-0001 花子 3  田中守  111-0000 東京都・・・ 000-0000 陽子 これを重複しているデータを省くのですが、[子供]の名前はすべて取り出したいと思っています。 どの様にすれば良いか教えて頂けないでしょうか? 氏名  郵便番号 住所     電話番号 子供 田中守  111-0000 東京都・・・ 000-0000 章,陽子 佐藤健  122-0001 神奈川県・・・ 001-0001 花子 最終的には、宛名印刷を行った時に、子供の名前も連名で表示したいと思っての事です。 現在、クエリで行っておりますが、クエリでなくても構いません。 足りない情報はすぐに補足致しますので、お手数ですが、どうぞよろしくお願い致します。 Access2003を使用しております。

  • アクセスの重複データ処理について

    前任者がアクセスで作ったプログラムを修正しなければなりません。 顧客データと商品データを結合したものを商品中心で検索した際に ・顧客A 商品1 ・顧客A 商品2 ・顧客A 商品3 ・顧客B 商品1 ・顧客B 商品2 ・顧客C 商品1 というように顧客名が重複して出てきてしまいます。 これを ・顧客A 商品1、商品2、商品3 ・顧客B 商品1、商品2 ・顧客C 商品1 と処理するにはどのようなプログラムが必要なのでしょうか?

  • データの並び替え方法について

    データの並び替えについて 【リストA】 顧客番号,氏名,データ1,データ2,データ3,データ4, 0001,鈴木 一郎, 1, 12, 45, 6 0002,山田 太郎, 12, 345, 67, 0 0003,大木 凡人, 20, 30, 40, 30 【リストB】 顧客番号,データ区分,数量 0001, 1, 1 0001, 2, 12 0001, 3, 45 0001, 4, 6 0002, 1, 12 0002, 2,345 0002, 3, 67 0002, 4, 0 0003, 1, 20 0003, 2, 30 0003, 3, 40 0003, 4, 30, 上記のようなリストAの形式からリストBに自動で変換する方法を教えてください EXCELでもACCESSでも簡単なやり方があればうれしいです よろしくお願いします

  • データ項目の文字間空白の除去について

    顧客データの重複をなくすため、顧客データのクレンジングを行っております。 氏名項目の姓・名間の空白を簡単に除去する方法はありますか? (『山田△太郎』⇒『山田太郎』のように空白を詰めて全データを同一形式にしたい) MS-ACCESS2000、Excel2003を主なツールとしております。 もしお分かりになる方がいらっしゃいましたらご教授宜しくお願い致します。

  • 23歳の事務をやっているOLです。エクセルでの重複データ抽出についての

    23歳の事務をやっているOLです。エクセルでの重複データ抽出についての質問です。仕事で2つのデータから重複データを抽出しないといけなくなったのですが、エクセルはよくわからないので質問させてください。データには顧客番号と名前が入っています。   A列    B列 1 顧客番号  名前 2 1234   田中太郎 3 2345   鈴木一郎 4 3456   佐藤次郎 5 4567   伊藤三郎 6 5678   吉田四郎 ・ ・ ・ データの形式は2つともこのような感じです。 データAには約1,000件のデータがあり、データBには約300件ほどのデータがあります。 AとBの顧客番号が重複している人の顧客番号と名前を上と同じような感じで別のファイルに表示させたいのですが、どうやってやったらいいのかわかりません>< 助けてください。 どうかよろしくお願いします。

  • accessは何ができるの?

    accessをまだ購入すらしていない者です。 ただaccessに大きな希望を持っています。 私にはやりたことがあります。それは顧客の予約管理です。現在はエクセルでその日ごとの顧客データを手入力で打ち込み紙に印刷し使用しています。 夢見ているシステムは、予約管理画面に顧客番号を入力すると過去に入力した顧客データの詳細が出力されるようにしたいのですが、その夢のようなシステムはaccessであれば実現できるのでしょうか? また日ごとに管理することは可能でしょうか?よろしくお願いします。

  • Access2003 式ビルダでのLikeについて教えてください

    Acccess初挑戦の状態で困っております。 例えばデータベース内の名前で「山」の文字が含まれる名前を抽出させたい場合、「クエリの抽出条件でLike "*山*"」とすることで抽出できるのはわかるのですが、フォームでマクロの式ビルダを用いて同様の抽出を行いたいのです。 「顧客データ」のテーブルにある「お客様名」のフィールドから、「検索フォーム」の「名前検索」に入力されたキーワードを含むものを抽出させるために、以下の用に式ビルダで作成したのですが、 [顧客データ]![お客様名]=[Forms]![検索フォーム]![名前検索] 完全に一致する場合しか抽出してくれません。 データベース内に「山田 太郎」の名前があったとして検索フォームで「山田 太郎」と入力すると抽出されます。これを「山」と入力しただけで「山田 太郎」が抽出されるようにしたいのです。 Likeの演算子を用いてアスタリスクを使用すれば、できるのかなとは思うのですが、式ビルダへの記述方法がわかりません。 アドバイス頂ければ助かります。

専門家に質問してみよう