2011-05-29 70 views
0

我有一个Access DB和2个表格2个表格之间的MS Access关系

我需要设置关系,但需要一些帮助。

表1

ID 名 地址 邮编 房间名

表2

房间名称

然后表2中包含的数据:

例如:

厨房,卧室等

我该如何做到这一点,使table1房间名称字段包含表2房间名称列表?

+0

访问?我们在2011年对吗?即使微软说不要使用它!使用** SQL精简版**,它功能更强大,您无需安装Access即可阅读并且超小尺寸! – balexandre 2011-05-29 19:19:26

+0

表1中的“房间名称”是一个数字? – 2011-05-29 19:22:08

+0

@balexandre我听到了雅,但有时​​我们没有选择。我的工作涉及很多Access编程。这是一个痛苦,但它支付账单。 – 2011-05-29 19:23:57

回答

1

做到这一点的最好方法是在表格中创建一个名为“room_name_id”的字段并将其设置为数字。随着时间的推移,它会占用mdb文件中更少的空间。 (旁注:由于“名称”是Access中的保留字,因此不能使用“名称”作为字段名称。)

接下来创建表格2,以便您有一个“id”字段和一个“room_name”字段。因此,如果“Spare room”包含id 1,则在表1中,room_name_id可以是1.

以下是可用于查询的SQL。

SELECT tblInfo.username, tblInfo.address, tblRoomNames.room_name 
FROM tblRoomNames INNER JOIN tblInfo ON tblRoomNames.id = tblInfo.room_name_id; 

这会显示类似“彼得”,“纳尼亚传奇”,“空房间”,即使表中的一个具有“彼得”,“纳尼亚传奇”,“1”。

P.S.我一直在工作中使用这个功能来填充带有供用户选择的选项的下拉框。这样我可以通过编辑一个表来更新多个下拉框。

+0

因此,表1的房间名称ID是自动编号?房间表ID也是自动编号? – Satch3000 2011-05-29 19:42:00

+0

不,表1的room_name_id应该是一个数字,表格2的ID应该是自动编号。否则,room_name_id将继续递增,超过表2中生成的自动编号。不好的时间。 =) – 2011-05-29 19:46:36

+0

此外,我对它的考虑越多,表2的“id”字段也应该被命名为“room_name_id”。无论何时尝试在设计模式下创建新查询,Access都应该选择这种关系。个人喜好。 – 2011-05-29 19:48:07