Access VBA: Find item in combo box based on non-bound column
ms-access, ms-access-2010, vba
Solution
And assuming it's not based on a table/query:
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
Problem
I have a two-column combo box on an Access form representing a key-to-code mapping. The first column of the combo box is the 'bound column' (ie, the column used when `MyComboBox.Value` is called). I need to dynamically set the `Value` of my combo box based on a value found in the second column. For eg, if my combo box source is: ``` Value | Code =============== A1 | ABCD A2 | EFGH A3 | IJKL ``` I can set the value of the combo box simply with `ComboBox.Value = "A2"`, but how would I do the same using the second column? `ComboBox.Value = "EFGH"` obviously isn't valid. Essentially looking for logic along the lines of `ComboBox.Value = ComboBox.ValueWhereSecondColumnEquals("EFGH")`