我在Access表单上有一个两列组合框,表示密钥到代码的映射。组合框的第一列是“绑定列”(即调用MyComboBox.Value
时使用的列)。
我需要根据第二列中的值动态设置我的组合框的Value
。例如,如果我的组合框源是:
Value | Code
===============
A1 | ABCD
A2 | EFGH
A3 | IJKL
我可以使用ComboBox.Value = "A2"
简单地设置组合框的值,但是如何使用第二列进行相同操作? ComboBox.Value = "EFGH"
显然无效。基本上寻找ComboBox.Value = ComboBox.ValueWhereSecondColumnEquals("EFGH")
答案 0 :(得分:6)
并假设它不是基于表/查询:
Dim i As Integer
For i = 0 To ComboBox.ListCount-1
If ComboBox.Column(1, i) = "EFGH" Then
ComboBox.Value = ComboBox.ItemData(i)
Exit For
End If
Next i
答案 1 :(得分:3)
假设您的组合基于表格,您可以DLookUp表格中的值:
ComboBox.Value = Dlookup("Value","Table","Code='" & sCode & "'")
答案 2 :(得分:0)
如果源是在组合框中选择的值,并且目标是未绑定的组合框,则将目标组合框的.BoundColumn属性设置为适当的列,然后正常分配组合框值,如cboX = cboY。即使绑定了目标组合框,也可以根据需要动态更改绑定列。