我正在尝试创建仅列出用户选择的建筑物中的房间的功能。所以如果他们选择建筑他们只看到Rm。 1,2,3。如果他们选择2楼,他们将看到rm 1,2,3,4,5。
表1 - 地点
|location id|Building|room|
|1 |123 | 1 |
|1 |123 | 2 |
|1 |123 | 3 |
|1 |456 | 1 |
|1 |123 | 4 |
|1 |456 | 2 |
表2 - 存储区
|Storage id|Storage Name|Building|Room|
| 1 |storage rm 1|123 |118
查询1 - Get_Buildings
SELECT DISTINCT Locations.Building
FROM Locations;
此查询只是从表1中“建筑物”列中选择一个不同的建筑物编号,表2中使用了“建筑物”列。
我需要能够根据我选择的建筑物编号显示房间号码。这可以在数据库视图中完成还是仅在表单视图中完成?如果是这样,有人可以指出我正确的方向或给我一些关键词谷歌,这将指向我正确的方向。
答案 0 :(得分:0)
SELECT locations.room
FROM locations
WHERE (((locations.Building)=123));
如果在VBA中,
strSql = "SELECT locations.room " & vbCrLf & _
"FROM locations " & vbCrLf & _
"WHERE (((locations.Building)=123));"
然后将字符串转换为记录集
Dim rstSQL As Recordset
Set rstSQL = CurrentDb.OpenRecordset(strSQL)
然后将记录集用作列表框中的行源
me.listbox.rowsource = rstSQL
但是,我建议将您的第一张桌子分成三个不同的桌子。 tblLocation,tblBuilding,& tblRooms
然后你可以利用适当的一对多关系。 1个位置可以有很多建筑, 1栋建筑可以有很多房间。