Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Access 2007)
テーブル内データとの照合
投稿日時: 18/03/05 14:04:09
投稿者: ゴマゴマ

お世話になります。
現在テーブルが2つ、「T_加工指示」とその前段階で加工指示内容を検討するワークテーブルとしての「WT_加工指示」があります。後者で内容を固め追加クエリで前者に送る(コピーして後者の中身は全削除)という仕組みです。
 
構成
T_加工指示 
 加工対象在庫No 加工指示内容 
  0001      *******
  0002      *******
  0003      ******* 
WT_加工指示
  0002      *******
  0004      *******
 
流れとして初めにWT_加工指示で加工指示内容を検討しますが、T_加工指示にあるユニークである加工対象在庫bいちいち見ていません。WT_加工指示の作業段階でダブっていないか確認したいです。もしダブった状態で追加クエリしても加工対象在庫bヘキーにしているため引っかかりますが、マクロのメッセージの設定をいいえにしているとメッセージがないまま取込まれずに終了してしまいます。WT_加工指示にコピーボタンを作りクリック時に「DLOOKUP("加工対象在庫No","T_加工指示","加工対象在庫No='"&[T_加工指示]![加工対象在庫No]&"'")としました。わざとダブった登録をしても反応がありませんでした(WT_加工指示の加工対象在庫Noに0002を入力して実験)。WT_加工指示の作業は2レコード以上の場合がありますので、例えばWT_加工指示内2件分の加工対象在庫NoをT_加工指示でダブっていないか照合したいです。DLOOKUPの設定方法、またはその他の方法についてご教示願います。
 

回答
投稿日時: 18/03/05 16:40:38
投稿者: Suzu

引用:
WT_加工指示にコピーボタンを作りクリック時に「DLOOKUP("加工対象在庫No","T_加工指示","加工対象在庫No='"&[T_加工指示]![加工対象在庫No]&"'")としました。わざとダブった登録をしても反応がありませんでした(WT_加工指示の加工対象在庫Noに0002を入力して実験)。WT_加工指示の作業は2レコード以上の場合がありますので、例えばWT_加工指示内2件分の加工対象在庫NoをT_加工指示でダブっていないか照合したいです。DLOOKUPの設定方法、またはその他の方法についてご教示願います。 

 
WT_加工指示 に存在する レコード中の、フィールド 加工対象在庫No の値が
既に T_加工指示 の加工対象在庫No に 存在しているか を知りたい。
 
で良いのでしょうか。
それが、INPUTBOXなり、フォームから 加工対象在庫No を入力しなければならない理由は何でしょうか?
追加クエリでは、確認できた 1レコードづつ 追加 している訳ではないですよね?
 
テーブル内の全レコードに対し、
だとすれば、[T_加工指示]と、[WT_加工指示]で、[加工対象在庫No] が
重複していない事を確認すれば良いのですよね?
 
 
SELECT [T_加工指示].[加工対象在庫No]
FROM [T_加工指示] INNER JOIN [WT_加工指示]
  ON [T_加工指示].[加工対象在庫No]=[WT_加工指示].[加工対象在庫No]
GROUP BY [T_加工指示].[加工対象在庫No]
 
このクエリに対し、DCount関数を使い 0件より多ければ重複していると判断できますよね。

投稿日時: 18/03/05 20:06:13
投稿者: ゴマゴマ

Suzu様
 
お世話様です。
早速にご回答ありがとうございます。「T_加工指示」と「WT_加工指示」との間でn対nの照合だったので悩んでしまいました。DCount関数で挑戦してみます。ありがとうございました。