使用组合框过滤记录并填充第二个组合框

Posted

技术标签:

【中文标题】使用组合框过滤记录并填充第二个组合框【英文标题】:Use combobox to filter records and populate a second combobox 【发布时间】:2017-02-16 16:21:38 【问题描述】:

我在将组合框的值传递给我想用来填充另一个组合框的查询时遇到了一点问题。

有一个大表,其中包含以下列:AutoID、Projectname、Projecttype 以及我想为某些记录过滤的其他一些列。 第一个组合框由一个不同的表填充,其中包含:AutoID 和 Projecttype(我已经使用它来创建上一个表中的记录)。此组合框绑定到第一列(AutoID),但我显示第二列。我想要的是 要做的就是选择一个“Projecttype”并用所有相应的记录填充第二个组合框并显示“Projectname”以进行进一步处理。

我已经读到不能直接在查询中使用组合框选择,您必须使用公共功能。我创建了这个函数(使用 listindex 从相应的 Projecttype 中获取 AutoID)但无法将其传递给查询(尽管值正确,但没有得到任何结果!

是否有一种“更好”的方式来过滤记录(基于组合框选择)并填充第二个组合框?

提前感谢您! 莫里茨

【问题讨论】:

【参考方案1】:

为什么两个表中都有AutoIDProjecttype?看起来你可以在这里做一些规范化。

要使用组合框做你想做的事,首先在你放置公共函数的模块中定义一个全局变量(我称之为 glngAutoID)。公共函数应该只返回此变量的值,然后您可以在查询第二个组合框时使用此函数。在第一个组合框的 AfterUpdate 事件中放置

glngAutoID = combo1
combo2.Requery

您不需要使用 ListIndex 属性来获取 AutoID,因为您已将组合框绑定到第一列。

【讨论】:

以上是关于使用组合框过滤记录并填充第二个组合框的主要内容,如果未能解决你的问题,请参考以下文章

如何根据另一个的选定项目过滤一个组合框集合?

如何从同一表单中的另一个组合框填充组合框?

组合框级联效应不适用于不同的行

如何根据从另一个组合框进行的选择来填充组合框

组合框级联效果不适用于不同的行

动态填充和更新组合框中的项目