Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Combo (http://www.forosdelweb.com/f69/combo-421942/)

Berletzis 31/08/2006 09:53

Combo
 
lcmb.AddItem lrsCombos.Fields("sif_catfact_vchr_nombre"), CStr(lrsCombos.Fields("strid"))


ese es mi codigo de un combo en la parte de Addimte
donde lo primero se supone que es lo que aparece en la parte del combo y lo que estas despues de la coma es el id que quiero madnar a la bd, el prblema de esto es que me dice que no es un tipo de datos correcto. type mismatch.

Cual podra ser la solución??

gracias!!

tazzito 31/08/2006 10:04

mmm nunca eh usado de esa forma el additem del combo, pero si strid es del tipo numerico (aunque a simplevista parece que no) puedes ingresarlo en el itemdata del combo
lcmb.ItemData(lcmb.NewIndex) = lrsCombos.Fields("Strid")

a lo mejor en tu codigo si es numerico y el cstr quitalo (asi no lo transformas a string)

y la otra forma (al menos la que yo prefiero usar) es cargar un listbox con el codigo del id ejemplo
list_lcmb.AddItem Trim(lrsCombos.Fields("strid")) <-- si es texto

y despues lo busco asi

msgbox "El Id Seleccionado es " + trim(list_lcmb.list(lcmb.listindex))

Berletzis 31/08/2006 10:10

suena bien. lo que pasa esque me quede con la ideadel javascript donde solo ponia el value y despues la cadena a mostrar..., deja lo intento asi como dices con el
lcmb.ItemData(lcmb.NewIndex) = lrsCombos.Fields("Strid")

lo unico que no entiendo es como mostrar los dos valores al mismo tiempo.
el ID y luego el texto? No c si me explico???

Berletzis 31/08/2006 10:11

este es el codigo
While Not lrsCombos.EOF = True

lcmb.AddItem lrsCombos.Fields("sif_catfact_vchr_nombre")

lrsCombos.MoveNext

Wend

tazzito 31/08/2006 10:20

ok vamos por parte, tu quieres mostrar ambos valores en el combo box puedes hacerlo pero de paso te recomiendo hacerlo con espacios definidos para que no sea mas ordenado

ejemplo
lcmb.AddItem lrsCombos.Fields("sif_catfact_vchr_nombre") & "-" & trim(rsCombos.Fields("Strid"))

ese es uno donde separas el valor del campo con el id por un guion -

o asignarlo de la siguiente forma
fuera del ciclo de recorrido
vardetalle=space(30)
varid=space(5)

dentro del ciclo

lset vardetalle= lrsCombos.Fields("sif_catfact_vchr_nombre")
rset varid = trim(lrsCombos.Fields("Strid"))
lcmb.AddItem vardetalle & " " & varid

Berletzis 31/08/2006 10:26

ahhhhhh ya te entedi!!!! Ahora me doy cuenta que el sonso soy yo... poruqe no me doy a explicar!!!!

Ya la utlima si no me doy un tiro... hay va!!

Lo que no c hacer es como poner el ID y mi texto en el combo
esto quiere decir que con el c´difo que puse pues si me muestra la info en el combo, pero cuando quiero guardarlo en la base de datos quiero madnar el id que le corresponse a ese campo!.

con este c´digo
lcmb.AddItem lrsCombos.Fields("sif_catfact_vchr_nombre")

en donde diablo ke pongo el id? No quiero que lo muestre! solo quiero que ese dato lleve su id para cuando lo tenga que guardar en la base de datos...

Si ya no me quieres contestar no hay problem.. jijijijijijjiji

Berletzis 31/08/2006 10:29

el problema que tengo es que
lcmb.AddItem lrsCombos.Fields("sif_catfact_vchr_nombre")
lcmb.ItemData(lcmb.NewIndex) = CStr(lrsCombos.Fields("sif_catfact_vchr_nombre"))

me dice que el tipo de dato no es el correcto para un indice, pero pue que hago si el id de mi base de datos es texto??

tazzito 31/08/2006 10:56

jejeje amigo... al parecer no as probado con la segunda opcion que te di en mi primer post... que es como dice ahi la que me gusta trabajar a mi, con un listbox (orbiamente con su propiedad visible a false) y como vez sale ahi como cargar la informacion en el y como recuperarla xD

ManuNic 04/09/2006 14:26

CboServicio.AddItem rst!detalle
CboServicio.ItemData(CboServicio.NewIndex) = rst!id

id debe ser numerico

Berletzis 04/09/2006 17:29

gracias
 
muchas gracias


La zona horaria es GMT -6. Ahora son las 09:22.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.