MS Access 2010 中的 ListBox 项目无法选择

4

我正在一个MS Access 2010表单上使用存储过程来填充列表框。我使用以下代码来填充列表框:

Dim qdf As QueryDef
Set qdf = CurrentDb.QueryDefs("PassThroughQuery")
qdf.SQL = "EXEC Search '" & searchValue & "'"
Set rs = qdf.OpenRecordset

While Not rs.EOF
    Me.searchResultsBox.AddItem rs("name")
    rs.MoveNext
Wend

查询运行正常,ListBox填充了指定的值,但是列表框中的项目不可选择。我无法单击和突出显示任何项目。
我检查了Enabled和Locked属性,它们分别设置为True和False。"Row Source Type"设置为"Value List"。我不知道为什么ListBox的值会表现出这种行为。

仅瞎猜:Control Source和Bound Column属性是什么?您是否已将过程代码或宏附加到组合框的单击或其他事件?dbCmd怎么了……这与此有关吗? - HansUp
@HansUp 抱歉,dbCmd不是相关的...那是我忘记删除的旧代码,这里是我的疏忽。控件源属性为空,绑定的列是1。我尝试将绑定的列置空,但它显然是必填字段,如果留空,Access会报错。 - user26901
1
好的,这个对我来说似乎很奇怪,这让我想到了可能存在损坏。您可以尝试使用 Application.SaveAsText acForm, "表单名称", "C:\SomeFolder\FormName.txt",然后在新的数据库文件中使用 Application.LoadFromText acForm, "表单名称", "C:\SomeFolder\FormName.txt",看看新的表单是否显示相同的症状。当然,您还必须导入表格和其他表单所依赖的内容。但是老实说,我不知道这个建议是否比我的第一个评论更有用。 :-( - HansUp
@HansUp 我一定要试一试!我很感激你的帮助!谢谢! - user26901
2个回答

2

我遇到了相同的问题:显然只有在允许编辑时,列表框项才能被选择。也许表单的允许编辑属性被设置为false。另外,可能由于经过查询或存储过程的结果不可编辑。


谢谢!对我来说,问题就在这里:我必须将包含表单的“数据”选项卡中的“允许编辑”属性设置为“是”。哦,我是多么喜欢Access啊... - Treb

0
不要忘记在表单级别上允许编辑,即使您希望所有内容都只读。对我来说,只有当我设置了允许编辑时,列表框才可选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接