2017-02-01 7 views
0

私は私が働いていることを具体的に3つのテーブルがあります。MS Access 2010 - 別のフォーム要素の条件を使用してフォームコンボボックスのカスタム行ソースをセットアップする方法

  • tblRooms [ID]
  • tblKeyed_Rooms [ID、Room_IDKEY_NUMBERを]
  • tblKeys [Key_Number]

私は他の、コンボボックスの要素のうち、2でフォームを作成しようとしています:tblCheckoutsから

  • キー [KEY_NUMBER] tblKeyed_Roomsから
  • ルーム [Room_ID]

ルームの行ソースは、tblKeyed_Rooms内の任意の行です。 = キーです。

私は、私はインターネットを検索発見したものをオフに基づいて、いくつかの異なるクエリをしようとしたと類似していたほとんどがしました:形で、それはキーに現れるようにするため

SELECT tblRooms.ID, tblRooms.Name FROM tblRooms INNER JOIN tblKeyed_Rooms ON tblRooms.ID = tblKeyed_Rooms.[Room_ID] WHERE [Forms]![frmKeyList]![Key]=[tblKeyed_Rooms].[Key Number]); 

名前

Access 2010を使用してこれを達成するにはどうすればよいですか?どんな助けもありがとう!

答えて

0

tblKeysにtblKeyed_Roomsに参加し、tblRoomsに参加し、フォーム上で作業している部屋に制限する必要があるようです。 I.

SELECT 
    K.Number A KeyNumber, 
    R.Name + ' - ' + R.Number A Room 
FROM 
    tblKeys Keys 
INNER JOIN 
    tblKeyed_Rooms KR ON KR.Key_Number = Keys.Key_Number 
INNER JOIN 
    tblRooms R ON R.ID = KR.Room_ID 
WHERE 
    Keys.Key_Number = Forms![frmKeyList]![KeyNumber] 
ORDER BY 
    Keys.Key_Number 

あなたの条件を理解して少し難しいですが、基本的には、フォームのfrmKeyListで利用可能な分野に参加するKEYS、KR、またはRエイリアステーブルから任意のフィールドすることができます。

Checkoutsテーブルがどのように収まるかは不明です。そのRowSource内に潜在的に存在する可能性のあるキーは、フォーム上のルームに対してこのクエリで定義されたキーに限定する必要があります。

+0

tblCheckoutsは、最初に削除しなかった一連の関連性のない情報の一部です。 K.Number KeyNumberとはどういう意味ですか?私が読むことができるいくつかの文書へのリンクがありますか? –

+0

JOINステートメントでは、結合されたテーブルを "エイリアス"し、残りのクエリの別名で参照できます。だから私が "INNER JOIN TblKeys K"と言うと、私はtblKeysのフィールドをquwryのどこかの "K. [FieldName]"と呼ぶことができます。それは単にそれをよりきれいにする。 – DanielG

関連する問題