ms-access - 在 Access 2007 中绑定(bind)表单组合框

标签 ms-access data-binding forms combobox

例如,我创建了一个 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/

相关文章:

sql - 只返回具有空字段的行?

ms-access - 将 MS Access 应用程序中的对象导出为文本对象,并导入新的 MDB

ms-access - VBA/Access 2007 中的 If [ComboBox] Is Null 语句

c# - 如何在 WPF 应用程序中捆绑 View、ViewModel 和 DataTemplate 以便于重用?

.net - 如何在 WPF ListView 被数据绑定(bind)时显示 Progress Spinner(或其他 UI)?

javascript - 如何使用js更改自动响应中的行

jquery - jQuery 中确定输入与文本区域

ms-access - 使用网页浏览器控件 Access vba显示本地PDF文件

c# - 更改绑定(bind)属性时,ListView 分组不会更新

javascript - 使用 vue.js 绑定(bind)动态表单值