Duda con ComboBox [SOLUCIONADO]

Iniciado por novalida, 29 Noviembre 2010, 23:47 PM

0 Miembros y 1 Visitante están viendo este tema.

novalida

Muy buenas,
¿se puede asociar a los item de un ComboBox un valor numérico?

Por ejemplo, una lista de empleados que tienen IDs no consecutivos, accediendo por el nombre, pero pudiendo tener acceso al ID del empleado.

Otro ejemplo sería de un ComboBox pero de los meses del año, pero éste ya sería más fácil, pues a través del método ListIndex + 1 se podría solucionar, pues aquí, lo índices sería consecutvos.

He intentado asociar cada elemento a un dato así, pero no lo veo claro:


       .AddItem ("Enero")
       .ItemData(Me.Combo1.NewIndex) = 1
       .AddItem ("Febrero")
       .ItemData(Me.Combo1.NewIndex) = 2
       .AddItem ("Marzo")
       .ItemData(Me.Combo1.NewIndex) = 3
       .AddItem ("Abril")
       .ItemData(Me.Combo1.NewIndex) = 4



Al seleccionar el valor de Enero, por ejemplo, me sale el índice real 0, no 1 :S
La verdad que tengo la duda de saber si se puede hacer fácilmente con los métodos proporcionados por Visual Basic 6.0, ¿alguien me puede dar una idea?

Saludos!!!

novalida

Buenas.... :D
me respondo yo mismo, que he dado con la repuesta justo después de preguntar aquí y haberme pasado un buen rato dándole vueltas sin saber qué hacía mal.
El problema estaba en el acceso a los dato asociado a ese "item".
El código de ejemplo de los meses quedaría de ésta manera.



Private Sub Form_Load()
   Call cargarmeses(Me.Combo1)
End Sub

Public Sub cargarmeses(oComboBox As ComboBox)
   With oComboBox
       .AddItem ("Enero")
       .ItemData(Me.Combo1.NewIndex) = 1
       .AddItem ("Febrero")
       .ItemData(Me.Combo1.NewIndex) = 2
       .AddItem ("Marzo")
       .ItemData(Me.Combo1.NewIndex) = 3
       .AddItem ("Abril")
       .ItemData(Me.Combo1.NewIndex) = 4
       .AddItem ("Mayo")
       .ItemData(Me.Combo1.NewIndex) = 5
       .AddItem ("Junio")
       .ItemData(Me.Combo1.NewIndex) = 6
       .AddItem ("Julio")
       .ItemData(Me.Combo1.NewIndex) = 7
       .AddItem ("Agosto")
       .ItemData(Me.Combo1.NewIndex) = 8
       .AddItem ("Septiembre")
       .ItemData(Me.Combo1.NewIndex) = 9
       .AddItem ("Octubre")
       .ItemData(Me.Combo1.NewIndex) = 10
       .AddItem ("Noviembre")
       .ItemData(Me.Combo1.NewIndex) = 11
       .AddItem ("Diciembre")
       .ItemData(Me.Combo1.NewIndex) = 12
   End With
End Sub

Private Sub Combo1_Click()
   MsgBox (Me.Combo1.ItemData(Me.Combo1.ListIndex))
End Sub




Espero que a alguien le pueda ayudar :D