我特别有三个表,我正在使用:
- 目录 [身份证、号码、姓名]
- tblKeyed_Rooms [ID, Room_ID, Key_Number]
- tblKeys [Key_Number]
我正在尝试创建一个包含两个组合框元素的表单:
- 来自 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 完成此操作?任何帮助将不胜感激!
看起来您需要将 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 表单上的可用字段。
我不清楚结帐表如何适应。可能位于该 RowSource 中的键应限制为在此查询中为窗体上的房间定义的键。