访问表单组合框 listindex 更改

Posted

技术标签:

【中文标题】访问表单组合框 listindex 更改【英文标题】:Access form combobox listindex changes 【发布时间】:2010-11-16 23:27:08 【问题描述】:

我正在支持一个大约有 10 年历史的 Access 应用程序,并且我正在尝试修复一些奇怪的行为。

有一个带有组合框的表单,对于列表中的某些项目,但不是全部,在我选择项目后,listindex 属性恢复为最初选择的项目。

例如,如果 listindex 从 6 开始,而我将其更改为 item 35,则它在整个单击事件中保持 35,然后在焦点返回到控件时恢复为 6。如果我将它更改为 listindex 7,它会坚持使用 7 而不会恢复为 6。

知道发生了什么吗?

我知道 NotInList 和 Undo 事件没有触发。

感谢任何帮助,包括调试方法。

-贝丝

好的,这是一个 3 列列表,并且第一列中的值 (org_number, width = 0) 不是唯一的,因此它会跳回具有相同 org_number 值的第一行,而不是停留在具有 org_number 的行上他们在第二列中选择的描述。

有什么办法可以让它坚持下去吗?

看起来一个 org_code 可以有多个描述,这是他们想要选择的,但是他们正在执行的导出使用 org_code 而不是 org_code 和描述,所以他们的结果与我的好计数不匹配添加到他们的列表中。

我想我要把这个数算回来......

【问题讨论】:

如果您有解决方案,也许您可​​以将其作为答案发布并稍后接受您自己的答案? 很遗憾,我没有解决方案。只是希望客户不要抱怨。可能存在需求不匹配,因为他们想要选择一个描述,但使用相同的 org_code 报告所有描述。 听起来像是一个糟糕的设计错误。用户想要的结果是什么?在我看来,您必须同时更改数据存储和 UI 才能解决此问题。 相信我,有很多“糟糕”的设计。在 Access 方面,我可以修复它。在 SQL Server 方面,没有那么多。 【参考方案1】:

您能否不将描述用作“绑定列”,这样它就不会切换回另一行。然后,当您需要 org_number 时,您可以查找与列表框中相同的数据。 这是一种解决方法,但在我看来它应该可以工作。

【讨论】:

以上是关于访问表单组合框 listindex 更改的主要内容,如果未能解决你的问题,请参考以下文章

在访问中更改组合框值时,可以更改/重新计算计算的文本框值

组合框更改后子表单不重新查询

更改所有表单上所有组合框对象的设置

访问表单 VBA ComboBox 点击事件

即使有焦点也无法访问组合框文本属性

用户表单组合框大小 - VBA