Microsoft Access 掲示板

コンボボックスのWHERE

4 コメント
views
4 フォロー

毎回素晴らしい回答頂き大変助かっております。
今回はフォーム上の選択用コンボボックスについてです。
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をどうすればいいのか分からないです。
いいアイデアあれば宜しくお願いします。

beginner
作成: 2024/12/17 (火) 09:02:27
通報 ...
1

ちょっと仕様が不明瞭ですが、
メインフォームのレコードソースがT1(部材テーブル)
サブフォームのレコードソースがT2(在庫対象会社テーブル)
ということでしょうか。

このフォームの目的はなんでしょうか。

T2(在庫対象会社テーブル)のメンテナンス用で、
部材の在庫を持っている会社を追加、あるいは削除するということでしょうか。

2
beginner 2024/12/17 (火) 12:19:11 61dd6@2d033

hatenaさん ありがとうございます。
仕様としては部材毎にどの会社に預けているを設定しており、別の棚卸し入力フォームで部材選択を絞り込む時に便利なのです。同じ部材の対象がA社、B社等複数あったり、棚卸外の分は未設定もあります。
なので部材登録フォーム(T1が基)にサブフォーム(T2が基)を設定してます。部材が大量にあるので在庫対象会社に対して部材IDを設定する方が大変だと思い、そうしてます。必用によって部材の在庫を持っている会社を追加、あるいは削除する事はあります。

3

必用によって部材の在庫を持っている会社を追加、あるいは削除する事はあります。

この作業用のフォームということでしょうか。つまり、T1、T2、それぞれのマスターテーブルのメンテナンス用ということでしょうか。

メインフォームに表示されている部材を持っている会社がサブフォームに表示されている。
この会社を削除したり追加したりする。
追加するときに、コンボボックスで選択するが、そのときに既に入力済みの会社はリストから除外する。

上記の仕様でいいですか。
だとすると、別に会社マスターテーブルが必要だと思いますが、そのテーブルの情報も提示してください。

4
beginner 2024/12/18 (水) 08:49:05 61dd6@2d033

hatenaさん ありがとうございます。
会社テーブルはT3:会社ID(数値型), 会社名(テキスト型)の構成です。