【问题标题】:MS Access 2010 - How to set up a custom Row-Source for Form ComboBox using criteria from another form element?MS Access 2010 - 如何使用来自另一个表单元素的条件为表单组合框设置自定义行源?
【发布时间】:2017-06-17 15:53:19
【问题描述】:

我正在使用三个表:

  • tblRooms [ID, Number, Name]
  • tblKeyed_Rooms [ID, Room_ID, Key_Number]
  • tblKeys [Key_Number]

我正在尝试创建一个包含两个组合框元素的表单:

  • Key 来自 tblCheckouts[Key_Number]
  • 房间来自 tblKeyed_Rooms[Room_ID]

其中 Room 的 Row Source 是 tblKeyed_Rooms 中的任意行,其中 Key Number = Key

根据我在互联网上搜索到的内容,我尝试了几个不同的查询,其中大部分类似于:

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]);

所以在表单中,它显示为 KeyName

如何使用 Access 2010 完成此任务?任何帮助将不胜感激!

【问题讨论】:

    标签: forms ms-access-2010


    【解决方案1】:

    您似乎需要将 tblKeys 加入 tblKeyed_Rooms 和 tblRooms,然后在表单上限制您正在使用的房间。即。

    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
    

    您的 WHERE 条件有点难以理解,但基本上它可以是 KEYS、KR 或 R 别名表中的任何字段,它们连接到窗体 frmKeyList 上的可用字段。

    我不清楚 Checkouts 表是如何适应的。可能在该 RowSource 中的键应限于此查询中为表单上的房间定义的键。

    【讨论】:

    • tblCheckouts 是我最初错过删除的一系列无关信息的一部分。 K.Number A KeyNumber 是什么意思?你有一些我可以阅读的文档的链接吗?
    • 在您的 JOIN 语句中,您可以“别名”连接的表,然后在查询的其余部分通过别名引用它。因此,如果我说“INNER JOIN tblKeys K”,我可以在 quwry 的其他地方将 tblKeys 中的字段称为“K.[FieldName]”。它只是让它更干净。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多