【发布时间】:2015-09-23 19:22:01
【问题描述】:
美好的一天。这是对上一个问题的跟进。我有一个带有 2 个组合框的表单,其中第 2 个组合框取决于第一个组合框的值。我有在第二个组合框中显示下拉列表的代码,但除了第一个条目之外我无法选择任何内容。
表 1:名称 - Supply_Sources、字段 - Source_ID(pk)、SupplySourceName
表 2:名称 - Warehouse_Locations,字段 - WLocation_ID(pk),Location_Name
表 3(连接点):名称 - SupplySource_WarehouseLocation,字段 - Supply_Source_ID(pk),Location_In_ID(pk)
在我的表单“frmInventoryReceivedInput”上,我有 cboSupplySource 和 cboWLocation。我用
填充 cboSupplySource SELECT [Supply_Sources].[Source_ID], [Supply_Sources].[SupplySourceName]
FROM Supply_Sources;
cboWLocation 的 SQL 是:
SELECT SupplySource_WarehouseLocation.Supply_Source_ID,
Warehouse_Locations.Location_Name FROM Warehouse_Locations
INNER JOIN (Supply_Sources INNER JOIN SupplySource_WarehouseLocation
ON Supply_Sources.Source_ID = SupplySource_WarehouseLocation.Supply_Source_ID)
ON Warehouse_Locations.WLocation_ID = SupplySource_WarehouseLocation.Location_In_ID
WHERE ((( SupplySource_WarehouseLocation.Supply_Source_ID)=
[forms]![frmInventoryReceivedInput]![cboSupplySource]));
cboWLocation 下拉列表中有 3 个选项供我选择(基于 cboSupplySource)。但是,我选择哪个并不重要,它默认为第一个。我需要做什么才能选择其他选项?
【问题讨论】:
-
ON Supply_Sources.Source_ID = SupplySource_WarehouseLocation.Supply_Source_ID?
-
当 cboSupplySource 的值发生变化时,您是否正在更新 cboWLocation?不确定是什么问题,第二个 cbo 没有更新或不允许您选择列表中的第二个项目?
-
这是一个错字 - 编码中有一个“=”。我有一个附加到 cboSupplySource 的重新查询,以便在发生更改时更新 cboWLocation。是的,第二个 cbo 不允许选择列表中的第一项以外的任何内容。
-
第二个 cbo 在被选中后是否在做其他事情,或者其他任何事情会影响第二个 cbo?当您更改第一个 cbo 时,第二个 cbo 更新好吗?第二个 cbo 是否会下降,以便您确认它正在按照您期望的方式更新?
-
只是为了让您知道我创建了一个包含 2 个具有简单一对多关系的 cbo 的新表单,并且我能够选择 cbo2 下拉列表中的任何项目。我对 m-m 进行了同样的尝试,但仍然存在相同的原始问题,即即使我在下拉列表中选择项目 2 或 3,也只允许项目 1。在这种情况下,根本没有 VBA 代码 - 只是表单中的 SQL。所以,我的访问不喜欢 SQL 中的某些内容。令人沮丧!