Access VBA:根据非绑定列在组合框中查找项目

时间:2013-03-12 16:28:59

标签: vba ms-access access-vba ms-access-2010

我在Access表单上有一个两列组合框,表示密钥到代码的映射。组合框的第一列是“绑定列”(即调用MyComboBox.Value时使用的列)。

我需要根据第二列中的值动态设置我的组合框的Value。例如,如果我的组合框源是:

Value | Code
===============
 A1    | ABCD
 A2    | EFGH
 A3    | IJKL

我可以使用ComboBox.Value = "A2"简单地设置组合框的值,但是如何使用第二列进行相同操作? ComboBox.Value = "EFGH"显然无效。基本上寻找ComboBox.Value = ComboBox.ValueWhereSecondColumnEquals("EFGH")

行的逻辑

3 个答案:

答案 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。即使绑定了目标组合框,也可以根据需要动态更改绑定列。