CARREGAR LISTVIEW MAIS RAPIDO
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:
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
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
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:
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]
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]
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
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
JABA e F001E,
Não acontece ERRO da forma postada por ambos?
Não acontece ERRO da forma postada por ambos?
Tópico encerrado , respostas não são mais permitidas