Hola,
te pongo un ejemplo de cómo funciona la propiedad ItemData de un ComboBox
Código:
Private Sub Form_Load()
Dim sBase As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
sBase = App.Path & "\bd1.mdb"
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & sBase
rs.Open "SELECT ElCampo from Tabla1", cn, adOpenStatic, adLockOptimistic
rs.MoveFirst
Do Until rs.EOF
Combo1.AddItem rs.Fields(0)
Combo1.ItemData(Combo1.NewIndex) = rs.AbsolutePosition
rs.MoveNext
Loop
rs.Close
Set cn = Nothing
End Sub
para mostrar el seleccionado al hacer click en el ComboBox:
Código:
Private Sub Combo1_Click()
Adodc1.Recordset.AbsolutePosition = Combo1.ItemData(Combo1.ListIndex)
End Sub
En este caso estamos trabajando con un control Adodc, pero igualmente lo puedes hacer creando directamente el recordset.
Mira que lo que estamos cargando en la propiedad es el número de registro del recordset, con lo cual nunca se puede repetir.
Un saludo..