Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/05/2008, 07:44
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 2 meses
Puntos: 37
Re: Listbox. Itemdata no funciona si hay dos items con el mismo texto?

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..