我有一个连续表格,有两个组合框。如果我不将它们链接在一起,所有值都会出现,但如果我链接两个组合框以使其中一个组合框依赖于其他组合框以便于选择,则这些值永远不会显示在第二个组合中。我尝试在 vba 中使用 if 条件编写代码来重新查询组合值以显示在所有记录中,但我做不到。我怎么能这么做呢? 谢谢你所做的一切
此技术称为级联(或依赖)组合框。一个很常见的话题。请注意,如果组合框 RowSource 使用别名(保存 ID 时显示文本),则在过滤列表时,文本将无法在所有记录中显示。对于连续/数据表视图形式的用户来说,这尤其令人不安。
可以有代码只在获得焦点时过滤第二个组合框,然后在失去焦点时恢复完整列表。用户仍然会看到数据短暂地从其他记录中消失,一开始可能会分散注意力,但会学会忽视。
但是,保持文本显示的解决方法是在用作表单 RecordSource 的查询中包含组合框 RowSource 查找表。将文本框绑定到查找表中的描述性文本字段。将文本框设置为“锁定是”和“TabStop 否”。在连续视图中,可以在组合框顶部调整文本框的大小和位置,以遮盖组合框文本,但仍显示下拉箭头(“混合”控件)。在数据表视图中,文本框不会叠加,但会显示文本。
如果控件是叠加的,习惯于单击组合框文本框架并键入输入的用户将遇到麻烦,因为文本框很可能是他们单击的控件。按 Tab 键切换到组合框或单击下拉箭头将导致组合框获得焦点并显示在文本框上。