Access (一般機能)

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

 
(Windows 10全般 : Access 2003)
コンボボックスの値をかえたい
投稿日時: 18/11/09 16:04:20
投稿者: haruna8739

ご教示願います。
Access初心者です。
 
T物件部屋番号
物件ID 部屋番号
 
T契約者情報
契約者名 物件ID 物件名 部屋番号
 
物件IDで一対多のリレーションシップを組んでいます。
 
T契約者情報で物件IDを入力すると部屋番号のコンボボックスにT物件部屋番号の物件IDに該当する部屋番号のみ表示されるようにしたいです。
 
Q物件部屋番号の抽出条件に入れればいいかな、と考えているのですがどのように入れればよいでしょうか。
または、ほかに良い方法がありますでしょうか。
 
ご回答宜しくお願いします。
 

回答
投稿日時: 18/11/09 19:55:30
投稿者: hatena
投稿者のウェブサイトに移動

一対多とのことですが、どちらのテーブルが一側なりますか。
 
もし、T物件部屋番号が一側とすると、1物件当たり一部屋しか登録できないので、コンボボックスにする必要はなくなります。
 
T契約者情報 が一側とすると、1物件当たり一部屋しか契約できないことになります。
 
おそらく、アパートとかマンションの契約管理データなのだと思いますが、
物件ID がアパート、 マンションの一棟で、
そこに複数の部屋があるということですよね。
 
T契約者情報 の 部屋番号 が主キーで、
部屋番号 でリレーションシップじゃないのですか。

投稿日時: 18/11/09 22:30:14
投稿者: haruna8739

すみません、書き間違え&情報が足りませんでした。
 
テーブルは
T物件情報
物件ID 物件名 住所…
 
T契約者情報
契約ID 契約者名 物件ID 部屋番号…
 
T物件部屋番号
物件ID 部屋番号
 
T物件情報とT契約者情報は物件IDで一対多のリレーションシップです
契約者情報を入力する際、物件IDを入れたら
部屋番号のコンボボックスにはT物件部屋番号の該当部屋番号のみ表示させたいのです。
Q物件部屋情報でT契約者情報の部屋IDを参照して抽出する、みたいな抽出条件を入れればいいのかなと考えているのですがダメでしょうか??
 
おっしゃる通り、アパートの管理データを作っています。
今までエクセルでめんどくさかったのでこの度作成に取り掛かりました。
 
 
 
 
 

回答
投稿日時: 18/11/10 00:12:23
投稿者: hatena
投稿者のウェブサイトに移動

物件IDと連結したテキストボックスの名前を「txt物件ID」にして、
コンボボックスを下記のように設定。
 
名前 cb部屋番号
コントロールソース 部屋番号
値集合ソース
SELECT 部屋番号 FROM T物件部屋番号 WHERE 物件ID = [txt物件ID];
 
 
コンボボックスのフォーカス取得時のイベントプロシージャを下記のように記述。
 

Private Sub cb部屋番号_Enter()
    Me.cb部屋番号.Requery
End Sub

 
以上でどうでしょう。

投稿日時: 18/11/20 13:22:53
投稿者: haruna8739

hatena 様
 
お返事遅くなり申し訳ありませんでした。
なかなかいじる時間がなく間が空いてしまいました。
ばっちりできました!ありがとうございました。
Requeryすることをすっかり忘れておりいつまでたっても表示される部屋番号が一緒で??でした。。。
 
また躓いたときはよろしくお願いいたします。