CARREGAR LISTVIEW MAIS RAPIDO

JORGESALES 08/06/2015 01:03:31
#447500
estava pensando se existe um geito de carregar uma listview sem ser do modo tradicional, tentei fazer uns comandos aqui
mas sem sucesso. Eu tenho uma tabela com 25 campos queria carregar a listiview sem ter que usar tantos [Ô][txt-color=#0000f0]Item.subitems(x) = rs(x)[/txt-color][Ô]
Tentei usar o código abaixo, se alguém puder ajudar ficarei grato:
Dim item As ListItem
ConnectDB
rs.Open [Ô]select * from tbAlunos[Ô], db, 3, 3
Do Until rs.EOF
For x = 0 To 25
Set item = ListView1.ListItems.Add(, , rs(x))
item.SubItems(x) = rs(x)
Next
rs.MoveNext
Loop
FecharBD
MESTRE 08/06/2015 07:46:57
#447502
por exemplo voce quer selecionar apenas o nome dos alunos, acho que ficaria melhor assim e não fazendo um for com 25 registros, e se os 25 registros se tornarem 30 ai você vai terque mexer no código só porque aumentou o numero de alunos por ex?? não desenvolvo em Vba acho que é o que você está desenvolvendo porém da uma testada e ve se funciona hehe

  Dim item As ListItem
Dim nomeAluno as String
ConnectDB
rs.Open [Ô]select nomeAluno from tbAlunos[Ô], db, 3, 3
Do Until rs.EOF

nomeAluno = rs!nomeAluno
ListView1.ListItems.Add(nomeAluno)

Next
rs.MoveNext
Loop
FecharBD

JORGESALES 08/06/2015 12:35:25
#447508
MESTRE, eu acho que me expressei mal, o que eu preciso é carregar os campos da listview sem ter que colocar tanto código como este:
ConnectDB
lstAlunos.ListItems.Clear
rs.Open [Ô]select *from TBAlunos[Ô], db, 3, 3
Do Until rs.EOF
Set Item = lstAlunos.ListItems.Add(, , rs!Nome & [Ô][Ô], , [Ô]Ico[Ô])
Item.SubItems(1) = [Ô][Ô] & rs(1)
Item.SubItems(2) = [Ô][Ô] & rs(2)
Item.SubItems(3) = [Ô][Ô] & rs(3)
Item.SubItems(4) = [Ô][Ô] & rs(4)
Item.SubItems(5) = [Ô][Ô] & rs(5)
Item.SubItems(6) = [Ô][Ô] & rs(6)
Item.SubItems(7) = [Ô][Ô] & rs(7)
Item.SubItems(8) = [Ô][Ô] & rs(8)
Item.SubItems(9) = [Ô][Ô] & rs(9)
Item.SubItems(10) = [Ô][Ô] & rs(10)
Item.SubItems(11) = [Ô][Ô] & rs(11)
Item.SubItems(12) = [Ô][Ô] & rs(12)
Item.SubItems(13) = [Ô][Ô] & rs(13)
Item.SubItems(14) = [Ô][Ô] & rs(14)
Item.SubItems(15) = [Ô][Ô] & rs!(15)
Item.SubItems(16) = [Ô][Ô] & rs(16)
Item.SubItems(17) = [Ô][Ô] & rs(17)
Item.SubItems(18) = [Ô][Ô] & rs(18)
Item.SubItems(19) = [Ô][Ô] & rs(19)
Item.SubItems(20) = [Ô][Ô] & rs(20)
Item.SubItems(21) = [Ô][Ô] & rs(21)
Item.SubItems(22) = [Ô][Ô] & rs(22)
Item.SubItems(23) = [Ô][Ô] & rs(23)
rs.MoveNext
Loop
FecharBD
End Sub


Gostaria de um Loop ou um For pois o [txt-color=#0000f0]item.subitem(1) = rs(1)[/txt-color] então com um Loop ou um For
poderia ir incrementando um valor de [Ô]x[Ô] até chegar no último campo:
[txt-color=#0000f0]item.subitem(x) = rs(x)[/txt-color]
JABA 08/06/2015 12:57:32
#447509
Resposta escolhida
Tente assim:

Dim item As ListItem
ConnectDB
rs.Open [Ô]select * from tbAlunos[Ô], db, 3, 3
Do Until rs.EOF
Set item = ListView1.ListItems.Add(, , rs(0))
For x = 1 To 25
item.SubItems(x) = rs(x)
Next
rs.MoveNext
Loop
FecharBD
F001E 08/06/2015 13:56:29
#447512
Citação:

Dim item As ListItem
ConnectDB
rs.Open [Ô]select * from tbAlunos[Ô], db, 3, 3
Do Until rs.EOF
For x = 0 To 25
Set item = ListView1.ListItems.Add(, , rs(x))
item.SubItems(x) = rs(x)
Next
rs.MoveNext
Loop
FecharBD



JORGESALES...você fez quase certo....o que tem que mudar é o Set item = ListView1.ListItems.Add(, , rs(x)) fora do FOR e o FOR x = 0 To 25 começar com 1 FOR x = 1 TO 25.
Isso seria uma Matriz onde Set item = ListView1.ListItems.Add(, , rs(x)) é a linha e o FOR x = 1 TO 25 as colunas....

Igual o JABA fez

Dim item As ListItem
ConnectDB
rs.Open [Ô]select * from tbAlunos[Ô], db, 3, 3
Do Until rs.EOF
Set item = ListView1.ListItems.Add(, , rs(0))
For x = 1 To 25
item.SubItems(x) = rs(x)
Next
rs.MoveNext
Loop
FecharBD

OMAR2011 08/06/2015 14:39:54
#447514
JABA e F001E,
Não acontece ERRO da forma postada por ambos?
Tópico encerrado , respostas não são mais permitidas