以连续形式连接的组合框 - 如果依赖于第一个组合,第二个组合不会显示其值我该如何解决

Posted

技术标签:

【中文标题】以连续形式连接的组合框 - 如果依赖于第一个组合,第二个组合不会显示其值我该如何解决【英文标题】:connected combo boxes in continuous form - the second combo doesn't show its value if dependent on first combo how could I fix that 【发布时间】:2021-12-25 22:29:19 【问题描述】:

我有一个包含两个组合框的连续表单。如果我没有将它们链接在一起,则会出现所有值,但如果我链接两个组合框以使其中一个依赖于另一个以便于选择,则这些值永远不会显示在第二个组合中。我尝试在 vba 中使用 if 条件编写代码以重新查询组合值以显示在所有记录中,但我做不到。我怎么能那样做?谢谢你所做的一切

【问题讨论】:

欢迎来到 SO。为了让您的问题质量/清晰度更高,您可以添加一些图片来帮助其他人正确回答。 【参考方案1】:

这种技术称为级联组合框。一个很常见的话题。请注意,如果组合框 RowSource 使用别名(在保存 ID 时显示文本),则在过滤列表时文本将无法显示在所有记录中。这对于连续/数据表视图形式的用户来说尤其令人不安。

可能有代码仅在获得焦点时过滤第二个组合框,然后在失去焦点时恢复完整列表。用户仍会看到数据从其他记录中短暂消失,起初可能会让人分心,但会学会无视。

但是,保持文本显示的一种解决方法是在用作表单 RecordSource 的查询中包含组合框 RowSource 查找表。将文本框绑定到查找表中的描述性文本字段。将文本框设置为 Locked Yes 和 TabStop No。在连续视图中,可以在组合框顶部调整文本框的大小和位置以隐藏组合框文本,但仍显示下拉箭头(“混合”控件)。在数据表视图中,文本框不会叠加,但会显示文本。

如果控件被叠加,习惯于单击组合框文本框并输入输入的用户会遇到麻烦,因为文本框很可能是他们单击的控件。切换到组合框或单击下拉箭头将使组合框获得焦点并显示在文本框上。

【讨论】:

我尝试了混合控制它的好主意,但它有时会起作用,当尝试添加其他记录时,它会变成代码符号#ED,并且需要在每次刷新时刷新所有表单,有时文本会正常显示并且有时并非所有记录都会出现这些问题是否有任何解决方案 您能详细解释一下我将如何处理将显示在第二个组合框上方的文本框吗?我选择了制表位并将其锁定,但我不明白我是否需要将它与第二个组合框(例如控件)连接起来source=secondcombobox.text 按照说明,文本框只是绑定到字段。您是否构建了查询以用作表单 RecordSource?您应该使用有关尝试的信息(代码和示例数据)来编辑您的问题。不,让表达式引用组合框是没有意义的。 我将第二个组合框的第二个值的列添加到源查询中并返回到连续形式,并使上面的文本框控件源在查询中引用它的列它完美地工作我花了 3由于这个原因,几天无法入睡,它在 2 分钟内就解决了,非常感谢这个网站的所有帮助 很高兴。如果答案解决了问题,请将其标记为已接受。

以上是关于以连续形式连接的组合框 - 如果依赖于第一个组合,第二个组合不会显示其值我该如何解决的主要内容,如果未能解决你的问题,请参考以下文章

通过连续形式访问循环

组合框依赖于另一个组合框 - JavaFX

通过键入选择组合框中的项目

如何在 Access 2007 中设置第一个连续组合框不可见?

在数据表或连续表单视图中的表单上,我们如何将第二个组合框中的可能值基于第一个组合框中选择的值?

更改组合框选项以修改图形/图表