大量データの管理にMS-Access
仕事で担当しているJANデータの管理は結構厄介だ。桁数やチェックデジットはもとより、面倒なのは重複チェックである。そもそもJANデータの入手経路としてはメーカーから入手するしか無く、その形態もメーカーによって様々なので、最低限Excelなどの表計算ソフトで整形する必要が出てくる。私はCalc@LibreOfficeを使っているが。
さて本題の重複チェックである。幸いというかAccessには不一致クエリーという概念があり、ウィザードから比較的容易に作成できる。しかし一々ウィザードで作ってられないケースもあるので備忘録しておく。
話の流れとして下記のとおり定義しておく。
- 1万件のマスターレコードがある
- 除外したいJANコードがテキストデータで1000件(行)ある
- 欲しいのは残りの9000件
実際の作業手順
- 除外したい1000件を「除外JAN」というテーブルでインポート
- 選択クエリーを新たに作り、JANフィールドをリレーションする
- リレーションの向きはマスター全件とする
- フィールドには、JANマスターの方全てに、除外JANフィールド追加
- 選択クエリーを実行してみると、JANが一致したレコード1000件には除外JANフィールドが表示されているが、それ以外の9000件には表示されていない。(ここが肝)
ココまできっちりと出来たら後はちょっとイメージするだけで出来るよね?
- クエリーをデザインモードで開き直す。
- 除外JANフィールドの選択条件に「Is Null」を定義して、表示のチェックボックスを外す。
- 再度クエリーを実行してみると、不一致9000件が表示される。
- クエリーの種類を、テーブル作成にするとか、そのままCSV等にエクスポートすれば、除外JANを考慮したいわゆる不一致クエリーの出来上がり。
あくまでも私の為に書いた私の文章なので参考になればラッキー、ならなかったら残念ということで。
コメント