EXCLUIR VARIOS ITEMS DO LISTVIEW
Olá pessoal ! Estou tentando excluir vários items selecionado no listview eu consigo só que esta retornando o erro (Run-time Error 35600- Index out of bounds) problema no loop aqui esta o código:
For iCont = 1 To .ListItems.Count
If .ListItems(iCont).Selected = True Then
(Aqui vai outros comandos)
.ListItems.Remove .ListItems(iCont).Index
.Refresh
iCont = iCont - 1
rsDeletaEmp.Close
Else
(Aqui vai outros comandos)
.ListItems.Remove .ListItems(iCont).Index
.Refresh
iCont = iCont - 1
rsDeletaEmp.Close
End If
Next
Se alguém poder me ajudar agradeço.
Valeu
Max
For iCont = 1 To .ListItems.Count
If .ListItems(iCont).Selected = True Then
(Aqui vai outros comandos)
.ListItems.Remove .ListItems(iCont).Index
.Refresh
iCont = iCont - 1
rsDeletaEmp.Close
Else
(Aqui vai outros comandos)
.ListItems.Remove .ListItems(iCont).Index
.Refresh
iCont = iCont - 1
rsDeletaEmp.Close
End If
Next
Se alguém poder me ajudar agradeço.
Valeu
Max
Cara, é o seguinte:
Você tem 100 linhas, e joga um For pra executar de 1 a 100
Excluiu 1 linha, você tem 99 linhas!
Ele nunca vai achar o ListView.ListItem(100), eu acho que é isso que tá acontecendo!
Você tem 100 linhas, e joga um For pra executar de 1 a 100
Excluiu 1 linha, você tem 99 linhas!
Ele nunca vai achar o ListView.ListItem(100), eu acho que é isso que tá acontecendo!
Remova de baixo para cima com um loop inverso
For iCont = ListItems.Count to 1
(...)
Next -1
For iCont = ListItems.Count to 1
(...)
Next -1
Utilize esta função:
Remover ListView1
Remover ListView1
Sub RemoverSelecionados(ctlListView As ListView)
Dim i As Long
i = ctlListView.ListItems.Count
Do While i >= 1
If ctlListView.ListItems(i).Checked Then ctlListView.ListItems.Remove (i)
i = i - 1
Loop
End Sub
valeu galera resolvi o problema com condicional While ex:
While .ListItems.Count <> iCont
iCont = iCont + 1
[Comandos]
.ListItems.Remove .ListItems(iCont).Index
.Refresh
iCont = iCont - 1
Wend
While .ListItems.Count <> iCont
iCont = iCont + 1
[Comandos]
.ListItems.Remove .ListItems(iCont).Index
.Refresh
iCont = iCont - 1
Wend
Tópico encerrado , respostas não são mais permitidas