我创建了一个 Access 2007 表单,用于显示“产品”表中的“产品”等内容。Product 表中的字段之一是与该产品的父类别相对应的 CategoryID。

在表单中,CategoryID 需要表示为绑定到 Category 表的组合框。这里的想法非常简单:选择新类别应更新产品表中的类别 ID。

我遇到的问题是,选择新类别会更新类别表的 CategoryName,而不是更新产品表中的 CategoryID。这样做的原因是,组合框似乎必须仅绑定到类别表的类别名称。

如果当前产品的 CategoryID 为 12,即类别表中的 CategoryName“Chairs”,然后选择一个新值,假设组合框中的“Tables”(CategoryID 13) 将使用新值更新 CategoryID 12 CategoryName“Tables”而不是将 Product 表 CategoryID 更新为 13。

如何将类别表绑定到组合框,以便数据文本字段(我希望存在于 Access 中)是类别名称,数据值字段是类别 ID,并且当选定的组合框项目更改时,仅更新产品的类别 ID ?

编辑: 请参阅下面已接受的答案。我还需要将列数更改为 2,一切都开始完美运行。

有帮助吗?

解决方案

您需要在组合框的查询中使用这两个值。
例如从类别表中选择类别 ID、类别名称...将组合框绑定到第一列 CategoryId。将组合框的列宽设置为 0in(不需要第二个值,因此没有限制)。这将隐藏包含您选择的值的第一列;所有这些都显示了描述值,这就是您想要看到的所有内容。因此,现在当您在组合框中选择不同的选项时,组合框返回的值将是绑定值 CategoryId,而不是 CategoryName。

啊,是的,艾莉森,抱歉,我忘记设置组合框列计数 = 2。

其他提示

您还应该检查类别表的 CategoryName 字段上是否有主键。您的原始配置应该抛出错误或消息,指出更新将违反密钥。事实上,您似乎可以有两个同名的类别。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top