【问题标题】:Binding a form combo box in Access 2007在 Access 2007 中绑定表单组合框
【发布时间】:2010-09-09 07:15:53
【问题描述】:

我创建了一个 Access 2007 表单,该表单显示例如 Product 表中的 Products。 Product 表中的字段之一是与此产品的父类别对应的 CategoryID。

在表单中,CategoryID 需要表示为绑定到 Category 表的组合框。这里的想法很简单:选择一个新的类别应该更新 Product 表中的 CategoryID。

我遇到的问题是选择新类别会更新类别表的类别名称,而不是更新产品表中的类别 ID。原因是组合框似乎只能绑定到 Category 表的 CategoryName。

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

如何将类别表绑定到combox框中,以便datatextfield(我希望在Access中存在)是类别名称,DataValuefield是CategoryID,只有当所选组合框时将更新产品的CategoryID项目改变了吗?

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

【问题讨论】:

    标签: ms-access data-binding forms combobox


    【解决方案1】:

    您还应该检查您的类别表在 CategoryName 字段上有一个主键。您的原始配置应该抛出错误或消息,说明更新将违反密钥。看起来你可以有 2 个同名的类别。

    【讨论】:

      【解决方案2】:

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

      啊,是的,Alison,抱歉,我忘了设置组合框 columncount = 2。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多