如何在 MS Access 2007 中使用值填充组合框

Posted

技术标签:

【中文标题】如何在 MS Access 2007 中使用值填充组合框【英文标题】:How to populate combo box with values in MS Access 2007 【发布时间】:2009-06-03 12:44:07 【问题描述】:

我有一个包含 3 个表的数据库。

制造商: ID、名称、说明

型号: ID、Manufact_ID、名称

订单: ID、Manufact_ID、Model_ID、数量、日期、

在 Access 中,我想为 Order 提供正常的表/数据表视图,它提供以下输出

ID Manufact.Name Model_ID(组合框) 数量 日期 1 LG W3000H-BN 10 02-01-2009 2 三星 SyncMaster 205BW 5 02-20-2009 3 三星 SyncMaster 206BW 2 03-18-2009 4 饭山 ProLite E1902S-B1 1 05-13-2009

我的问题是组合框。我只想在组合框中选择当前制造商的型号列表。例如:如果选择了 SAMSUNG,则只有 SAMSUNG 型号。 我尝试将 Model_ID 列的查找行源设置为

选择型号.ID,型号.Manufact_ID,型号.名称,订单.Manufact_ID \ FROM Model, Order WHERE Order.Manufact_ID = Model.Manufact_ID

这实际上是一个 Model INNER JOIN Order ON ... 给出了错误的结果。 如何在实际行的 Lookup SELECT 命令中引用 Order.Manufact_ID 的实际值?这是一个我无法字符串化的变量值。

谢谢!

施特劳斯

【问题讨论】:

如果您坚持使用数据表,则必须使用表格。你不能在一个普通的表格数据表中做你想做的事。实际上,您不应该在表格中嵌入组合框。而在有多个记录的表单上,如果将 LimitToList 设置为 TRUE 会变得很复杂,因为当前记录的组合框列表的过滤器会导致其他记录显示空白值。 顺便说一句,这个问题就是为什么我不制作带有可编辑组合框的连续表单和数据表——这使得使用过滤的下拉列表验证数据变得太难了。 【参考方案1】:

很遗憾,这是不可能的。表单上的组合框只能有 1 个来源,数据表或多记录表单上的每条记录不能有不同的来源。

【讨论】:

呃,什么?对我来说,这似乎是一个简单的级联组合框问题。 也就是说,一个组合框一次只能有一个行源,但它可以在运行时更改或根据当前记录中的值进行过滤。【参考方案2】:

您可能希望阅读这篇文章,这似乎与您的相同。它提供了一个解决方案:

Is there a simple way of populating dropdown in this Access Database schema?

【讨论】:

以上是关于如何在 MS Access 2007 中使用值填充组合框的主要内容,如果未能解决你的问题,请参考以下文章

MS-Access 2007 - 如何在点击事件中以编程方式访问子表单列数据

Access Access 2007中的记录集问题

MS access mdb 文件第一次从 Access 2007 打开时处于“修复”状态

如何根据每条记录的连续表单中 ms-access 中的其他值填充文本框上的值

MS Access 2007 - 选择多条记录并将值分配给字段

如何在 MS ACCESS 2007 查询中使用 LIMIT