我有 Access 2010 表单,其中有一个组合框cmbSubTopic
其中列出了两列(SubTopicID
and SubTopic
)。组合框绑定到包含以下内容的字段SubTopicID
. The SubTopicID
组合框中的列被隐藏,它只显示SubTopic
。当用户选择一个SubTopic
从下拉菜单中选择相应的SubTopicID
存储在表中。我为表单的加载事件编写了一些VBA代码来查找SubTopicID
表中及对应的SubTopic
在组合框中选择。我当前的代码是这样的:
Set rsST = dbs.OpenRecordset(strSqlst)
For i = 0 To Me.cmbSubTopic.ListCount - 1
If Me.cmbSubTopic.Column(0, i) = rsST.Fields("SubTopicID").Value Then
Me.cmbSubTopic.SetFocus
Me.cmbSubTopic.Selected(i) = True
Exit For
End If
Next i
这给出了错误:
您输入的文本不是列表中的项目
我也尝试使用这个:
Me.cmbSubTopic = Me.cmbSubTopic.Selected(i)
这会选择 ComboBox 中的项目,但也会将 I 的值写入ID
我不想要的表字段。
假设组合的第一列,SubTopicID
,也是它的“绑定列”属性,该列的值用作组合的.Value
财产。这意味着您只需要分配一个值.Value
为了选择匹配的组合行。
Me.cmbSubTopic.Value = rsST.Fields("SubTopicID").Value
这种方法很简单,但我不确定它是否适合您的情况。我们对你一无所知rsST
记录集---我假设SubTopicID
记录集当前行中的字段是您要在组合中选择的值。如果我误解了这一点,我们需要找出不同的东西。
如果组合绑定到表单记录源中的字段,则此建议也会更改存储的值。如果您不想这样做,请“解除绑定”组合——换句话说,使其成为控制源属性空白。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)