CARREGAR NO LISTVIEW E DA ERRO

CARDOZO 28/06/2012 13:36:45
#405113
Pessoal, to tentando carregar um listview atraves de um DATASET e ta dando erro, to postando o codigo abaixo

Dim tab_lista As Recordset
Dim ct As Integer
Dim itmX As ListItem

Private Sub Form_Load()

Set area = DBEngine.Workspaces(0)
Set banco = area.OpenDatabase(App.Path & [Ô]\poomsae.mdb[Ô])
Set tab_lista = banco.OpenRecordset([Ô]Atleta[Ô], dbOpenTable)


For ct = Me.LST.ColumnHeaders.Count To 1 Step -1
Me.LST.ColumnHeaders.Remove (ct)
Next
Me.LST.ColumnHeaders.Add 1, [Ô]Colocacao[Ô], [Ô]Pos.[Ô], LST.Width / 25
Me.LST.ColumnHeaders.Add 2, [Ô]Media[Ô], [Ô]Média[Ô], LST.Width / 25
Me.LST.ColumnHeaders.Add 3, [Ô]Aluno[Ô], [Ô]Aluno[Ô], LST.Width / 3
Me.LST.ColumnHeaders.Add 4, [Ô]Academia[Ô], [Ô]Academia[Ô], LST.Width / 4
Me.LST.ColumnHeaders.Add 5, [Ô]Categoria[Ô], [Ô]Categoria[Ô], LST.Width / 13
Me.LST.ColumnHeaders.Add 6, [Ô]Graduacao[Ô], [Ô]Graduacao[Ô], LST.Width / 13

[ô]se eu retirar essa parte aki ele carrega os cabeçalhso dos listew, mas se eu deixar esta parte em diante ele da o erro de 380 Invalidi property value e nos itens quando passo o maou os valores estão lá, ele so não carrega onde to errando ou ta faltando o que?
While Not tab_lista.EOF
Set itmX = Me.LST.ListItems.Add() [ô] se precisar adionar imagem à primeira coluna
itmX.SubItems(0) = Trim(tab_lista!Colocacao)
itmX.SubItems(1) = Trim(tab_lista!media)
itmX.SubItems(2) = Trim(tab_lista!Aluno)
itmX.SubItems(3) = Trim(tab_lista!Academia)
itmX.SubItems(4) = Trim(tab_lista!Categoria)
itmX.SubItems(5) = Trim(tab_lista!Graduacao)
tab_lista.MoveNext
Wend

imagem

aproveitando, queria colorir a linha onde um determinado campo estivesse um valor zero, tem como.
obrigado


FFCOUTO 28/06/2012 13:45:49
#405115
Não existe índice 0 (ZERO) para os subitems, você deve iniciar em 1.
CARDOZO 28/06/2012 13:48:11
#405116
mas mesmo colocando como 1 da o mesmo erro.
KERPLUNK 29/06/2012 09:12:06
#405171
Certifique-se que você adicionou as colunas no listview:

ListView1.ColumnHeaders.Add , , [Ô]Coluna1[Ô]
ListView1.ColumnHeaders.Add , , [Ô]Coluna2[Ô]
ListView1.ColumnHeaders.Add , , [Ô]Coluna3[Ô]

ListView1.ListItems.Add , , [Ô]XXX[Ô]
ListView1.ListItems(ListView1.ListItems.Count).SubItems(1) = [Ô]yyy[Ô]
ListView1.ListItems(ListView1.ListItems.Count).SubItems(2) = [Ô]zzz[Ô]
CARDOZO 29/06/2012 13:25:30
#405194
amigo KERPLUNK

cpomo disse, as colunas são adicionadaas corretamernte o problema é daki pra diante que dá o erro 380

[ô]se eu retirar essa parte aki ele carrega os cabeçalhso dos listew, mas se eu deixar esta parte em diante ele da o erro de 380 Invalidi property value e nos itens quando passo o maou os valores estão lá, ele so não carrega onde to errando ou ta faltando o que?
While Not tab_lista.EOF
Set itmX = Me.LST.ListItems.Add() [ô] se precisar adionar imagem à primeira coluna
itmX.SubItems(0) = Trim(tab_lista!Colocacao)
itmX.SubItems(1) = Trim(tab_lista!media)
itmX.SubItems(2) = Trim(tab_lista!Aluno)
itmX.SubItems(3) = Trim(tab_lista!Academia)
itmX.SubItems(4) = Trim(tab_lista!Categoria)
itmX.SubItems(5) = Trim(tab_lista!Graduacao)
tab_lista.MoveNext
Wend

passo o mouse no tab_lista!campo e aparece o conteudo do campo,
KERPLUNK 29/06/2012 13:35:21
#405195
Experimente assim:
While Not tab_lista.EOF
Set itmX = Me.LST.ListItems.Add , , Trim(tab_lista!Colocacao) [ô] se precisar adionar imagem à primeira coluna
LST.ListItems(ListView1.ListItems.Count).SubItems(1) = Trim(tab_lista!media)
LST.ListItems(ListView1.ListItems.Count).SubItems(2) =Trim(tab_lista!Aluno)
LST.ListItems(ListView1.ListItems.Count).SubItems(3) =Trim(tab_lista!Academia)
LST.ListItems(ListView1.ListItems.Count).SubItems(4) =Trim(tab_lista!Categoria)
LST.ListItems(ListView1.ListItems.Count).SubItems(5) =Trim(tab_lista!Graduacao)
tab_lista.MoveNext
Wend
CARDOZO 29/06/2012 13:39:46
#405196
tb não deu certo, vc tem algu m modelo de carregar listview com dados de uma tabela?

pois este ja ta me dando nos nervos, não to cosneguindo fazer com que carregue. o titulo consegui carregar, as colunase titulos da tabela do list, mas os dados não.
KERPLUNK 29/06/2012 13:41:05
#405197
Posta ae o código completo pra eu ver.
CARDOZO 29/06/2012 13:45:06
#405199
assim

Option Explicit
Dim tab_lista As Recordset
Dim ct As Integer
Dim itmX As ListItem

Private Sub Form_Load()

Set area = DBEngine.Workspaces(0)
Set banco = area.OpenDatabase(App.Path & [Ô]\poomsae.mdb[Ô])
Set tab_lista = banco.OpenRecordset([Ô]Atleta[Ô], dbOpenTable)


For ct = Me.LST.ColumnHeaders.Count To 1 Step -1
Me.LST.ColumnHeaders.Remove (ct)
Next
Me.LST.ColumnHeaders.Add 1, [Ô]Colocacao[Ô], [Ô]Pos.[Ô], LST.Width / 25
Me.LST.ColumnHeaders.Add 2, [Ô]Media[Ô], [Ô]Média[Ô], LST.Width / 25
Me.LST.ColumnHeaders.Add 3, [Ô]Aluno[Ô], [Ô]Aluno[Ô], LST.Width / 3
Me.LST.ColumnHeaders.Add 4, [Ô]Academia[Ô], [Ô]Academia[Ô], LST.Width / 4
Me.LST.ColumnHeaders.Add 5, [Ô]Categoria[Ô], [Ô]Categoria[Ô], LST.Width / 13
Me.LST.ColumnHeaders.Add 6, [Ô]Graduacao[Ô], [Ô]Graduacao[Ô], LST.Width / 13

--->>>ate aqui da certo, o problema é daki pra frente

While Not tab_lista.EOF
Set itmX = Me.LST.ListItems.Add() [ô] se precisar adionar imagem à primeira coluna
itmX.SubItems(0) = Trim(tab_lista!Colocacao)
itmX.SubItems(1) = Trim(tab_lista!media)
itmX.SubItems(2) = Trim(tab_lista!aluno)
itmX.SubItems(3) = Trim(tab_lista!Academia)
itmX.SubItems(4) = Trim(tab_lista!Categoria)
itmX.SubItems(5) = Trim(tab_lista!Graduacao)
tab_lista.MoveNext
Wend

End Sub

----
passo o mouse em cima de cada intem tab_lista e ele mostra os valores, mas da erro
OMAR2011 29/06/2012 13:48:05
#405200
Resposta escolhida
Testei seu código com uma Tabela Cepruas,porém com uma modifição.
Veja

Dim itmX As ListItem
Dim Banco As DAO.Database
Dim tab_lista As DAO.Recordset
Dim ws As Workspace
Private Sub Form_Load()
Set ws = DBEngine.Workspaces(0)
Set Banco = ws.OpenDatabase(App.Path & [Ô]\Cepruas.mdb[Ô])
Set tab_lista = Banco.OpenRecordset([Ô]SELECT * FROM Cepruas[Ô], dbOpenDynaset)

For ct = Me.Lst.ColumnHeaders.Count To 1 Step -1
Me.Lst.ColumnHeaders.Remove (ct)
Next
Me.Lst.ColumnHeaders.Add 1, [Ô]Colocacao[Ô], [Ô]Pos.[Ô], Lst.Width / 25
Me.Lst.ColumnHeaders.Add 2, [Ô]Media[Ô], [Ô]Média[Ô], Lst.Width / 25
Me.Lst.ColumnHeaders.Add 3, [Ô]Aluno[Ô], [Ô]Aluno[Ô], Lst.Width / 3
Me.Lst.ColumnHeaders.Add 4, [Ô]Academia[Ô], [Ô]Academia[Ô], Lst.Width / 4
Me.Lst.ColumnHeaders.Add 5, [Ô]Categoria[Ô], [Ô]Categoria[Ô], Lst.Width / 13
Me.Lst.ColumnHeaders.Add 6, [Ô]Graduacao[Ô], [Ô]Graduacao[Ô], Lst.Width / 13

[ô]se eu retirar essa parte aki ele carrega os cabeçalhso dos listew, mas se eu deixar esta parte em diante ele da o erro de 380 Invalidi property value e nos itens quando passo o maou os valores estão lá, ele so não carrega onde to errando ou ta faltando o que?
While Not tab_lista.EOF
If tab_lista!Codigo Then
Set itmX = Me.Lst.ListItems.Add(, , tab_lista!Codigo) [ô] se precisar adionar imagem à primeira coluna
Else
[ô]Set lstPed = Lvped.ListItems.Add(, , rsped!Codigo)
End If
[ô] itmX.SubItems(0) = Trim(Tab_lista!Codigo)
itmX.SubItems(1) = Trim(tab_lista!Bairro)
itmX.SubItems(2) = Trim(tab_lista!Cidade)
itmX.SubItems(3) = Trim(tab_lista!Logradouro)
itmX.SubItems(4) = Trim(tab_lista!Cep)
itmX.SubItems(5) = Trim(tab_lista!Uf)
tab_lista.movenext
Wend

End Sub

Foi assim que testei e deu certo.
Valeu
CARDOZO 29/06/2012 14:00:12
#405201
descobri o erro amigo, tinha campos que estavam zerados, ai o sistema desconhecia, e seu codigo deu certo, agora vem as duvidas no listview, preciso colorir algumas linhas e poder selecionar eles e pegar os dados dele apra divulghar e possivelmente alterar, tem essa possibilidade

1 - preciso colorir linhas cuja o valor de um determinado campo seja 0
2 - preciso me movimentar entre os regisgistros = no dbgrid
3 - preciso clicar nas linhas e exibir estes dados em campos text para possivel alteração

e consequentemente exibir esses dados novamente atualizados no list?

tem essa possibilidade

orbigado pela resposta rapida amigo
Tópico encerrado , respostas não são mais permitidas