Hola Oscar,
Tenés suerte de que tu código alfanumérico tenga sólo tres caracteres, si fueran más (más de cuatro) no se podría implementar la solución que paso a detallar:
Consiste en almacenar los caracteres como una expresión numérica: la propiedad ItemData es de tipo Long (4 bytes). Podemos utilizar esos 4 bytes para almacenar un caracter en cada uno, de la siguiente manera:
Function Empaquetar(ByVal Cadena As String) As Long
Dim i As Integer, lResult As Long
For i = 1 To Len(Cadena)
lResult = lResult * 256 + Asc(Mid$(Cadena, i, 1))
If i > 4 Then Exit For
Next
Empaquetar = lResult
End Function
Esta función acepta una cadena de caracteres y devuelve un valor Long, que podés almacenar en la propiedad ItemData. A la hora de recuperar los valores de dicha propiedad y obtener la cadena correspondiente, entra en juego la función inversa:
Function DesEmpaquetar(ByVal Valor As Long) As String
Dim sResult As String * 4, i As Byte
sResult = Space$(4)
i = 1
Do While Valor > 0
Mid$(sResult, 5 - i, 1) = Chr$(Valor Mod 256)
Valor = Valor \ 256
i = i + 1
Loop
DesEmpaquetar = Trim$(sResult)
End Function
Que recibe el valor Long "empaquetado" y devuelve la cadena original correspondiente.
Bueno, espero que te haya servido, saludos,
Leonardo Bosi
Buenos Aires, Argentina
leobosi@feedback.net.ar
leonardo@bosi.biocom.com
ICQ # 9027216
---------------------------------
"What do you want to reinstall today?"
-----Mensaje original-----
De: Oscar Perez
Enviado el: Sábado 9 de Mayo de 1998 07:33
Para: Lista Vb-Esp (Correo electronico)
Asunto: (VB-ESP) ItemData
Hola a todos...,
Como puedo hacer esto, cuando el valor que recoge ItemData no es un entero,
sino caracteres?
Do While Not MiRecordset.EOF
MiCombo.AddItem MiRecordset!DcCampo
MiCombo.ItemData(MiCombo.NewIndex) = MiRecordset!IdCampo
MiRecordset.MoveNext
Loop
donde DcCampo es una cadena (la que se mostrara en el combo) e IdCampo es
un codigo que se usa para trabajar mas comodamente. Pero el problema es que
IdCampo no es numerico, si fuese asi no habria ningun problema. El problema
es que IdCampo es de tipo texto, con 3 caracteres..., ?Como puedo hacer el
codigo de arriba si IdCampo es tipo texto?
Muchas gracias por todo y un saludo
=======================
Oscar Perez
1998 Barcelona (Espana)
mailto:oscarpg@geocities.com
ICQ #6462336