データベースで抽出する不一致クエリー(Microsoft Access)

大量データの管理にMS-Access

仕事で担当しているJANデータの管理は結構厄介だ。桁数やチェックデジットはもとより、面倒なのは重複チェックである。そもそもJANデータの入手経路としてはメーカーから入手するしか無く、その形態もメーカーによって様々なので、最低限Excelなどの表計算ソフトで整形する必要が出てくる。私はCalc@LibreOfficeを使っているが。

さて本題の重複チェックである。幸いというかAccessには不一致クエリーという概念があり、ウィザードから比較的容易に作成できる。しかし一々ウィザードで作ってられないケースもあるので備忘録しておく。

話の流れとして下記のとおり定義しておく。

  • 1万件のマスターレコードがある
  • 除外したいJANコードがテキストデータで1000件(行)ある
  • 欲しいのは残りの9000件

実際の作業手順

  1. 除外したい1000件を「除外JAN」というテーブルでインポート
  2. 選択クエリーを新たに作り、JANフィールドをリレーションする
  3. リレーションの向きはマスター全件とする
  4. フィールドには、JANマスターの方全てに、除外JANフィールド追加
  5. 選択クエリーを実行してみると、JANが一致したレコード1000件には除外JANフィールドが表示されているが、それ以外の9000件には表示されていない。(ここが肝)

ココまできっちりと出来たら後はちょっとイメージするだけで出来るよね?

  1. クエリーをデザインモードで開き直す。
  2. 除外JANフィールドの選択条件に「Is Null」を定義して、表示のチェックボックスを外す。
  3. 再度クエリーを実行してみると、不一致9000件が表示される。
  4. クエリーの種類を、テーブル作成にするとか、そのままCSV等にエクスポートすれば、除外JANを考慮したいわゆる不一致クエリーの出来上がり。

あくまでも私の為に書いた私の文章なので参考になればラッキー、ならなかったら残念ということで。

コメント

タイトルとURLをコピーしました