基于组合框值的WHERE查询:索引关闭1

时间:2017-11-29 21:36:00

标签: sql ms-access

这应该很简单,但我无法弄清楚问题或找到答案:

我有一个表Units,其中包含相关字段UnitNameDivision

我在查询:

SELECT UnitName
FROM Units
WHERE Division = '9';

尽可能简单。表中记录的Division字段由带有RowSource查询的lookup / combobox填充:

SELECT Division.ID, Division.Abbreviation
FROM Divisions
ORDER BY Abbreviation;

绑定列为0。

然而,选择UnitName的第一个查询仅在设置WHERE Division = 'X'时有效,因此X比我在表中看到的实际ID小1。 例如,如果我查看我的测试表,我有一个记录,分区字段显示9,如果我设置X = 8,查询只找到此记录。这与我创建的任意数量的虚拟记录一致。

为什么?!

1 个答案:

答案 0 :(得分:2)

  

绑定列为0。

这是你的问题。如果您希望组合框的.Value为所选项目的Division.ID,则绑定列应为1,而不是0.如果绑定列为0,则组合框{{1}将是下拉列表中显示的项目的从零开始的索引。这似乎表现为一个一个错误的事实只是巧合。