例如,我创建了一个 Access 2007 表单,用于显示 Product 表中的 Products。 Product 表中的字段之一是与此产品的父类别对应的 CategoryID。
在表单中,CategoryID 需要表示为绑定(bind)到 Category 表的组合框。这里的想法非常简单:选择一个新类别应该更新 Product 表中的 CategoryID。
我遇到的问题是选择一个新的类别会更新 Category 表的 CategoryName 而不是更新 Product 表中的 CategoryID。这样做的原因是,似乎组合框必须只绑定(bind)到 Category 表的 CategoryName。
如果当前产品的 CategoryID 为 12,它是 Category 表中的 CategoryName“Chairs”,那么会发生什么情况,然后选择一个新值,例如组合框中的“Tables”(CategoryID 13)用新的 CategoryID 更新 12 CategoryName "Tables"而不是将 Product 表 CategoryID 更新为 13。
我如何将类别表绑定(bind)到combox框,以使datatextfield(我希望在 Access 中存在)是categoryName,而datavaluefield是categoryId,只有当所选的组合框项目更改时,产品的类别ID才会更新。 ?
编辑:请参阅下面接受的答案。我还需要将列数更改为 2,一切都开始正常工作。
最佳答案
您需要在组合框的查询中使用这两个值。
例如从 CategoryTable 中选择 CategoryId、CategoryName...
将组合框绑定(bind)到第一列 CategoryId。
将组合框的列宽设置为 0in(不需要第二个值,因此没有限制)。这将隐藏包含您选择的值的第一列;所有显示它的描述值,这就是你想看到的。
因此,现在当您在组合框中选择不同的选项时,组合框返回的值将是绑定(bind)值 CategoryId,而不是 CategoryName。
啊,是的,Alison,对不起,我忘了设置组合框 columncount = 2。
关于ms-access - 在 Access 2007 中绑定(bind)表单组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69048/