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

マイクロソフト PC

大量データの管理に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を考慮したいわゆる不一致クエリーの出来上がり。

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

コメント

Comment spam is annoying.

There has been an increase in comment spam, but we decline it. It’s pointless because we use Akismet to block spam comments. Spam comments will not be posted.

コメントスパムが増えていますがお断りします。akismetでスパムコメントを弾いているので無意味です。スパムコメントは掲載されません。

ブロックしたスパム

DMM広告

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