De listview a listview

Molestando de nuevo.. ¿ja
cómo debe ser la función para pasar un elemento de un LVW a otro con un botón asignar? Este código tengo pero me da error... Me dice que el indice esta fuera de los términos
------------------------------------------------------------------
Private Sub cmdAsignar_Click()
dim cant as integer
If LVW1.SelectedItem <> 0 Then
For i = 0 To LVW1.ListItems.Count
cant = InputBox("ingrese la cantidad que desea: ")  -->debo preguntar cuantos quiere
With LVW2.ListItems.Add
.Text = LVW1.SelectedItem.Text
.SubItems(1) = LVW1.ListItems(i).SubItems(1)
.SubItems(2) = cant
.SubItems(3) = Val(LVW1.ListItems(i).SubItems(2))
End With
Exit For
Next i
End If
End Sub
------------------------------------------------
El LVW1 tiene como columnas: idPrestacion, descripción, precio
LVW2 tiene como columnas: idPrestacion, descripción, cantidad, precio
--------------------
En ese orden.. No se si esta bien lo que estoy haciendo, ¿igual en el LVW2 en la columna descripción en vez de traerla tal cual esta en el LVW1 me trae el nro de descripción... Que tengo que cambiar? ¿Tendría qué hacer una consultasql? ¿Así los traigo de la tabla directamente? ¿O se puede hacer así... Seleccionando de un LVW y al hacer click en el botón que lo agregue...?
1

1 Respuesta

566.650 pts. Desarrollador de aplicaciones en plataforma
El for debe terminar en ... Count -1, recuerda que si empiezas en cero, entonces si son 5 items el contador debe llegar a 4 no a 5 y eso es lo que te esta pasando.
Con respecto a lo de la descripción debes escoger otro subitem, con eso se debe corregir.
Gracias ya lo cambie... pero me da error en el subitem(1), que esta bien porque corresponde a la 2da columna que yo quiero... me dice que el indice esta fuera de los limites...
--------------------------------------------
El LVW1 tiene como columnas: idPrestacion, descripción, precio
LVW2 tiene como columnas: idPrestacion, descripción, cantidad, precio
----------------------------------------------
Quiero pasar descripción de la 2da col del lvw1 a la 2da col del lvw2 osea es el subitem (1)... no se porque me dice fuera de los limites si están bien las columnas...
¿Y cómo hago para verificar si la cantidad que ingresa en el inputBox sea numérico y no letras?
if not isnumeric(cant) then
msgbox"debe ingresar numeros"
exit sub
end if
pero me da error tambien hay alguna otra forma??
OK
El error en el subitems es porque no existe tiens que agregarlo, entonces lo que tienes como:
.subitems(1) = LVW1.ListItems(i).Subitems(1)
Tienes que cambiarlo a :
. Subitems. Add(LVW1. ListItems(i). Subitems1)
Y asi para todos los subitems

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas