Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   problema con listbox (http://www.forosdelweb.com/f69/problema-con-listbox-353824/)

laulaurys 29/11/2005 09:49

problema con listbox
 
Hola tengo un list box que cargo asi:

sql = "SELECT DISTINCT Item,Pos FROM Items_Acuerdos ORDER BY Item"
Rs.Open sql, cnn, adOpenDynamic, adLockOptimistic
Do While Rs.EOF = False
lista_item.AddItem Rs.Fields("Item")
Rs.MoveNext
Loop



en el campo POS, tengo el codigo correspondiente al item, y en el campo item la descripcion

mi problema es cuando quiero guardar lo que seleccionan :
yo tengo:

sql = "SELECT * FROM [Acuerdo_Deudas_Item]"

Rs.Open sql, cnn, adOpenDynamic, adLockOptimistic

For c = 0 To lista_item.ListCount
If lista_item.Selected(c) = True Then
Rs.AddNew
Rs!Item = lista_item.Columns(1,c)
Rs.Update
End If
Next c

pero no funciona, en que me estoy equivocando? ayuda please!

saluditos!:adios:

GeoAvila 29/11/2005 11:02

en las faq's hay un ejemplo de como conectar un combobox con una db..

nos vemos..

laulaurys 29/11/2005 11:51

Geoavila, sinceramente lo busque y no lo encontre, pero bueno aca mis compañeros de trabajo me dicen que no es posible, la verdad esperaba una respuesta mas constructiva, ya lei las faqs y probe con buscar, pero bueno ......buscare en otro lado

GeoAvila 29/11/2005 14:19

Cita:

Iniciado por laulaurys
pero bueno aca mis compañeros de trabajo me dicen que no es posible, la verdad esperaba una respuesta mas constructiva, ya lei las faqs y probe con buscar, pero bueno ......buscare en otro lado

la verdad yo esperaba a una persona que dedicara tiempo a leer unas pocas faq's en verdad, también me ofende un tanto la repuesta al decir que no es una repuesta constructiva cuando ni siquiera te haz empeñado en busar el ejemplo pero bueno..

http://www.forosdelweb.com/showpost....&postcount=104

esta en la página No. 4 de las faq's para que veas si estaba..

nos vemos.. y espero te sirva el ejemplo constructivo..

MeXiCaN 29/11/2005 14:58

GeoAvila, a mi me paso lo mismo al principio no encontré aquello que me dijiste, quizás la sugerencia sería el redireccioamiento directo a traves del index de temas. Algunos temas, también, el título no describe lo que realmente es, con lo cual muchas veces se nos pasan las faqs y no encontramos aquellos que buscamos.

jc_moty 29/11/2005 17:50

Cita:

Mi problema es cuando quiero guardar lo que seleccionan.
A ver, porque no probas asi:
Código:

sql = "SELECT * FROM [Acuerdo_Deudas_Item]"
Rs.Open sql, cnn, adOpenDynamic, adLockOptimistic
For c = 0 To lista_item.ListCount
        If lista_item.Selected(c) = True Then
                Rs.AddNew
                Rs.Fields("Item") = lista_item.Columns(1,c)
                Rs.Update
        End If
Next c

Saludos :adios:

laulaurys 30/11/2005 06:17

Esto es lo que yo habia puesto originalmente pero no me funciono :(
gracias igual por la buena onda!
si se te ocurre otra cosa avisame!
un beso



Cita:

Iniciado por jc_moty
A ver, porque no probas asi:
Código:

sql = "SELECT * FROM [Acuerdo_Deudas_Item]"
Rs.Open sql, cnn, adOpenDynamic, adLockOptimistic
For c = 0 To lista_item.ListCount
        If lista_item.Selected(c) = True Then
                Rs.AddNew
                Rs.Fields("Item") = lista_item.Columns(1,c)
                Rs.Update
        End If
Next c

Saludos :adios:


laulaurys 30/11/2005 06:24

GeoAvila ese post ya lo habia leido pero no es lo que yo busco....porque yo tengo un solo LISTBOX, donde muestro items, y quiero guarda el codigo correspondiente (que no me lo muestra el listbox, porque es otro campo) buscandolo con algun selec , tengo asi por el momento


sql = "SELECT * FROM [Acuerdo_Deudas_Item]"

rs.Open sql, cnn, adOpenDynamic, adLockOptimistic

For c = 0 To lista_item.ListCount

If lista_item.Selected(1) = True Then
rs.AddNew
rs!Id_Contratista = id_proveedor
rs!ID_Siderca = ID_Siderca
campo = lista_item.List(c)
Sql2 = "SELECT Pos FROM [Acuerdo_Deudas_Item] WHERE Item='" & campo & "'"
rs!Item = lista_item.Selected(1)
rs.Update
End If
Next c

rs.Close
Set rs = Nothing


en base al item que selecciona quiero buscar el codigo y guardarlo en otra tabla, pero no se ahi como ejecutar el sql ya que no puedo hacer rs.open sql...., no me lo permite....yo busque algo parecido en los post y no encontre

Por otro lado disculpa que te diga pero Mexican tiene razon, a veces los titulos no son intuitivos...gracias y saludos

jc_moty 30/11/2005 10:19

Cita:

Esto es lo que yo habia puesto originalmente pero no me funciono :(
Hola laulaurys, fijate bien porque no es igual, vos haces uso de Rs!Item, esto no siempre funciona en Visual Basic 6, aunque si en Visual Basic para Aplicaciones, en VB6 tenes que sustituir eso por Rs.Fields("Item").

Respecto a tu ultimo post porque no podes hacer rs.Open, ¿te da algun error o que?, yo te recomendaria que crees otro Recordset y que en ese hagas el SELECT que necesitas, se me ocurre esto:
Código:

sql = "SELECT * FROM [Acuerdo_Deudas_Item]"

rs.Open sql, cnn, adOpenDynamic, adLockOptimistic

For c = 0 To lista_item.ListCount
        If lista_item.Selected(1) = True Then
                rs.AddNew
                rs.Fields("Id_Contratista") = id_proveedor
                rs.Fields("ID_Siderca") = ID_Siderca
                campo = lista_item.List(c)
                Sql2 = "SELECT Pos FROM [Acuerdo_Deudas_Item] WHERE Item='" & campo & "'"
                rs2.Open Sql2, cnn, adOpenDynamic, adLockOptimistic
                rs.Fields("Item") = lista_item.Selected(1)
               
                rs.Update
        End If
Next c

rs.Close
Set rs = Nothing
rs2.Close
Set rs2 = Nothing

Lo que cambia de tu codigo es lo que esta en Negrita.
:adios:

laulaurys 30/11/2005 11:31

Hola amigo! te cuento hice algunos cambios, el rs! si lo acepta ese no es el problema, te paso lo que modifique y el error que me tira:

sql = "SELECT * FROM [Acuerdo_Deudas_Item]"

rs.Open sql, cnn, adOpenDynamic, adLockOptimistic

For c = 0 To lista_item.ListCount
If lista_item.Selected(c) = True Then
rs.AddNew
rs!Id_Contratista = id_proveedor
rs!ID_Siderca = ID_Siderca
Dim rs4 As New ADODB.Recordset
Set rs4 = New ADODB.Recordset
sql = "SELECT Pos FROM [Items_Acuerdos] WHERE Item='" & lista_item.List(c) & "'"
rs4.Open sql, cnn, adOpenDynamic, adLockOptimistic
rs!Item = rs4(0)

End If

Next c

El error que me tira es "error 381 en tiempo de ejecucion", el indice de la matriz de propiedades no es valido....y me señala el LISTA_ITEM.SELECTED(C) PERO no se como hacer entonces para indexar....la verdad no se ya como solucionarlo!! espero ayuda, gracias.
Laulaurys:-)

jc_moty 01/12/2005 17:50

La solucion es muy simple cambia:
Código:

For c = 0 To lista_item.ListCount
por
Código:

For c = 0 To lista_item.ListCount - 1
Ahora si te tiene que funcionar :si:


La zona horaria es GMT -6. Ahora son las 20:46.

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