毎回素晴らしい回答頂き大変助かっております。
今回はフォーム上の選択用コンボボックスについてです。
T1(部材テーブル)とT2(在庫対象会社テーブル)が1対多で部材IDでリレーションシップになってます。
T1:部材ID(オートナンバー),部品名等 T2:在庫対象会社ID(オートナンバー),会社ID,部材ID等
対象コンボボックスのフォーカス取得後イベントに下記を記述してます。(部材フォームにサブフォームの形でサブフォームのコンボボックス)
Dim strSQL
strSQL =
"SELECT [在庫対象会社ID], [在庫対象会社名] " &
"FROM T2 " & _
"ORDER BY [在庫対象会社ID] ;"
Me.[在庫対象会社ID].RowSource = strSQL
例えば部材IDの1に会社IDの2、3が入力の形(選択が1ヶや複数でなしもあり)。
可能であればコンボボックスで会社IDの2を選択後、次の選択時にはIDの2以外のリスト表示ができないかなと思っているのですがWHEREをどうすればいいのか分からないです。
いいアイデアあれば宜しくお願いします。
ちょっと仕様が不明瞭ですが、
メインフォームのレコードソースがT1(部材テーブル)
サブフォームのレコードソースがT2(在庫対象会社テーブル)
ということでしょうか。
このフォームの目的はなんでしょうか。
T2(在庫対象会社テーブル)のメンテナンス用で、
部材の在庫を持っている会社を追加、あるいは削除するということでしょうか。
hatenaさん ありがとうございます。
仕様としては部材毎にどの会社に預けているを設定しており、別の棚卸し入力フォームで部材選択を絞り込む時に便利なのです。同じ部材の対象がA社、B社等複数あったり、棚卸外の分は未設定もあります。
なので部材登録フォーム(T1が基)にサブフォーム(T2が基)を設定してます。部材が大量にあるので在庫対象会社に対して部材IDを設定する方が大変だと思い、そうしてます。必用によって部材の在庫を持っている会社を追加、あるいは削除する事はあります。
この作業用のフォームということでしょうか。つまり、T1、T2、それぞれのマスターテーブルのメンテナンス用ということでしょうか。
メインフォームに表示されている部材を持っている会社がサブフォームに表示されている。
この会社を削除したり追加したりする。
追加するときに、コンボボックスで選択するが、そのときに既に入力済みの会社はリストから除外する。
上記の仕様でいいですか。
だとすると、別に会社マスターテーブルが必要だと思いますが、そのテーブルの情報も提示してください。
hatenaさん ありがとうございます。
会社テーブルはT3:会社ID(数値型), 会社名(テキスト型)の構成です。