PREENCHER UM LISTVIEW COM DAO

FBONETTI 01/08/2011 15:17:27
#380505
Fala galera

Seguinte, estou fazendo um sisteminha de testes em Excel/VBA.
Preciso fazer uma lista com os testes que foram feitos, mas o excel aqui da empresa simplismente não está adicioando o Grid ou FlexGrid. Então resolvi fazer o listview.

é simples, tenho uma tabela num banco access com umas 15 colunas e quero listálas no listview.

Estou fazendo o código corretamente mas ele dá um erro estranho. no VB6 não dá erro, somente no VBA

Segue o código:
  Dim rsProjeto As New Recordset
Set rsProjeto = db.Execute([Ô]SELECT * FROM testes WHERE status_teste = [ô]Pendente DDS[ô][Ô])

lst_testes.ColumnHeaders.Clear
lst_testes.ListItems.Clear

Dim i As Integer
While Not rsProjeto.EOF
Set lst = lst_testes.ListItems.Add(, , rsProjeto(0))

For i = 1 To 5
lst.SubItems(i) = rsProjeto(i)
Next i
rsProjeto.MoveNext
Wend


O erro está na linha
 lst.SubItems(i) = rsProjeto(i)  
, ele simplismente mostra a mensagem [Ô]Invalid Property value[Ô]

detalhe: a tabela está preenchida com todos os dados corretamente

alguém sabe como resolver esse erro?
FBONETTI 02/08/2011 13:49:09
#380603
ninguém tem alguma idéia que erro é esse?
acabei de testar tanto no excel 2003 e no 2007 ambos dão esse erro
LUIZGS 02/08/2011 19:56:43
#380633
Resposta escolhida
Boa noite amigo, se servir pra vc tenho um listeview, que uso aqui sem problemas no excel 2003.

Sub btprocurar_Click()
On Error Resume Next
Plan1.ListView1.Visible = True

Dim DB As Database
Dim RS As Recordset
Dim i
i = 0
Set DB = OpenDatabase((ThisWorkbook.Path & [Ô]\Resinas.mdb[Ô]), False)
Set RS = DB.OpenRecordset(([Ô]Select * From [Consulta] WHERE lote like [ô]1[ô][Ô]))

With Plan1.ListView1
.ListItems.Clear
.FullRowSelect = True
.ColumnHeaders.Clear
.ColumnHeaders.Add , , [Ô]Data[Ô], 80
.ColumnHeaders.Add , , [Ô]Codigo[Ô]
.ColumnHeaders.Add , , [Ô]Lote[Ô]
.ColumnHeaders.Add , , [Ô]Hora[Ô], 80
.HideColumnHeaders = False
.View = lvwReport
.Gridlines = True
End With


With Plan1.ListView1
Do Until RS.EOF
Set Y = .ListItems.Add(, , RS(0).Value)
Y.SubItems(1) = RS([Ô]Codigo[Ô]).Value
Y.SubItems(2) = RS([Ô]lote[Ô]).Value
Y.SubItems(3) = RS([Ô]hora[Ô]).Value
i = i + 1
RS.MoveNext
Loop
End With

End Sub
Att
Osmar
FBONETTI 03/08/2011 10:57:09
#380675
esse codigo funfou cara, mto obrigado
Tópico encerrado , respostas não são mais permitidas