Como Guardar ID y Dato en un Combo

Iniciado por TheGhost(Z), 9 Marzo 2008, 04:19 AM

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

TheGhost(Z)

Hola, miren que tengo que guardar La ID y el DATO de una tabla en un combo. Lo he intentado con:

Combo1.AddItem "PEDRO" 'Nombre
Combo1.ItemData(.Combo1.NewIndex) = 10 'Codigo del nombre

Combo1.AddItem "JUAN" 'Nombre
Combo1.ItemData(.Combo1.NewIndex) = 11 'Codigo del nombre


Esto me resulta erfectamente, pero no me sale para guadar el ID de tipo String, por ejemplo

Combo1.AddItem "PERU" 'Pais
Combo1.ItemData(.Combo1.NewIndex) = "PE" 'Codigo del pais

Combo1.AddItem "CHILE" 'Pais
Combo1.ItemData(.Combo1.NewIndex) = "CL" 'Codigo del pais


Me arroja el sgte error.. "Llamada a procedimiento o argumentos no validos".. lo que estuve notando es que creo que solo se puede guardar la ID como tipo Numerico, y como yo le estuve metiendo un valor String me arroja error.

¿como puedo hacer para guardar un dato String?


En la web enconre esto...
Estoy llenando un combobox con este codigo:     CmbBox.Items.Add(New
ListItem(texto, valor))


---------------
Do While DR.Read()
    CmbEspec.Items.Add(New ListItem(DR.Item("DESCRIPCION"),
DR.Item("COD_ESPEC")))
Loop
---------------


Me dice "ListItem no esta definido"


Donde esta el error en lo que estoy tratando de hacer???


Gracias,


Edwin.


Saludos,
Pedro


naderST

Creo que no se puede porque solo admite numeros...

Chefito

No te serviría definir tu un array y luego tirar de él?
Ejem:
'Manteniendo el orden del combo y el array no hace falta indizarlos
Paises=array("ES","FR","PO")
Combo1.AddItem "ESPAÑA" 'Pais
Combo1.AddItem "FRANCIA" 'Pais
Combo1.Additem "PORTUGAL"
' Y los recuperas poniendo el indice en el array
siglaspais=paises(combo1.listindex)

Es algo general. Tendrías que meterlo en el evento del combo la recuperación de las siglas.....o lo que quieras hacer  ;).
Saludos.
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)

TheGhost(Z)

Hola utiliso muchos formularios. donde lo coloco eso. ademas cuando cierre el formulario tendria que descargar el arrray para que no ocupe memoria no?..

no se como usar array todavi..

Chefito

#4
Que donde colocas eso? Y yo que se! :xD. El programa es tuyo y tu tienes el código.....no yo. Yo te dí una pequeña solución a tu duda inicial. Ahora te toca a ti adaptarla a tu programa. No se...supongo que tendrías que declarar el array publicamente y que siglaspais=paises(combo1.listindex) tendría que ir en el evento combo1_click, por ejem. Seguidamente siglaspais tendrías que pasarselo a la consulta que ataqua la tabla de las ciudades y luego cargar el 2 combo con el resultado de ese recordset anterior conteniendo las ciudades coincidentes con el ID. Todo esto debe ir metido en el combo1_click. Y esto lo digo basandome en el tema anterior que posteaste.
Creo que el vb descarga automaticamente el array de la memoria....pero si me equivoco tampoco cuesta tanto meter en el form1_unload un set paises= nothing.
Y en lo de la utilización del array....para eso está google. Además, practicamente con el ejemplo anterior se ve como se utiliza....no tiene mucho más. Pues eso, creas un array de elementos, y los puedes recuperar por medio de su índice numérico.....pais(0)="ES",pais(1)="FR",etc (el rango del índice del array comienza por 0 por que el vb tiene por defecto el option base 0).
Saludos.
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)

((( SPAWN )))

Hola, coincido con lo q dice chefito, otra forma si queres eliminar el array de memoria utliza

Erase Paises


Saludos

Cita de: EON + = SOLUCIÓN