Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

problema con listbox

Estas en el tema de problema con listbox en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/11/2005, 09:49
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 18 años, 11 meses
Puntos: 1
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!
  #2 (permalink)  
Antiguo 29/11/2005, 11:02
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
en las faq's hay un ejemplo de como conectar un combobox con una db..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 29/11/2005, 11:51
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 18 años, 11 meses
Puntos: 1
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
  #4 (permalink)  
Antiguo 29/11/2005, 14:19
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
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..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #5 (permalink)  
Antiguo 29/11/2005, 14:58
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
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.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #6 (permalink)  
Antiguo 29/11/2005, 17:50
Avatar de jc_moty  
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 477
Antigüedad: 18 años, 7 meses
Puntos: 1
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
  #7 (permalink)  
Antiguo 30/11/2005, 06:17
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 18 años, 11 meses
Puntos: 1
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
  #8 (permalink)  
Antiguo 30/11/2005, 06:24
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 18 años, 11 meses
Puntos: 1
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
  #9 (permalink)  
Antiguo 30/11/2005, 10:19
Avatar de jc_moty  
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 477
Antigüedad: 18 años, 7 meses
Puntos: 1
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.
  #10 (permalink)  
Antiguo 30/11/2005, 11:31
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 18 años, 11 meses
Puntos: 1
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
  #11 (permalink)  
Antiguo 01/12/2005, 17:50
Avatar de jc_moty  
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 477
Antigüedad: 18 años, 7 meses
Puntos: 1
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:32.