Bom dia Mauro,
Era na biblioteca.
Mas agora estou com outro problema:
aos poucos estou conseguindo fazer as adaptações, fazendo pesquisas, ativando algumas bibliotecas.
Me deparei com esse erro estou pesquisando, vi varias explicações, mas ainda não consegui encontrar o erro:
A Variavél do objeto ou a variavél do bloco with não foi definida 91
VBA Project.
Fazendo a depuração vi que a variavel indiceTemp não esta recebendo o valor de cboOrdenarPor.ListIndex, fazendo com que fique com o Valor=0.
O que esta dando errado? o campo que pego é um codigo de catalogo que nao é numerado automaticamente e esta na terceira coluna, o que esta na versão original e o da primeira coluna.
Private Sub PopulaListBox(ByVal Codigo As String, _
ByVal Periodo As String, _
ByVal Padrao As String, _
ByVal Metal As String, _
ByVal Ano As String)
On Error GoTo TrataErro
Dim rst As ADODB.Recordset
Dim campo As Field
Dim myArray() As Variant
Dim i As Integer
Dim li As ListItem, fld As Field, ch As ColumnHeader
Dim Column As Long
Dim Counter As Long
Counter = 0
Set rst = PreecheRecordSet(Codigo, Periodo, Padrao, Metal, Ano)
'preenche o combobox com os nomes dos campos
'persiste o índice
Dim indiceTemp As Long
indiceTemp= cboOrdenarPor.ListIndex
cboOrdenarPor.Clear
For Each campo In rst.Fields
cboOrdenarPor.AddItem campo.Name
Next
'recupera o índice selecionado
cboOrdenarPor.ListIndex = indiceTemp
'Colunas a Preencher Inicia na Primeira
For i = 2 To rst.Fields.Count - 1 'For i = 1 : a partir da 2ª coluna
Set ch = lstLista.ColumnHeaders.Add(, , rst.Fields(i).Name)
'ch.Width = 48 'Define o Tamanho de Todas as COLUNAS
'MsgBox rst.Fields(i).Name
Next
'Clear the Column Headers
lstLista.ListItems.Clear
'coloca as linhas do RecordSet num Array, se houver linhas neste
If Not rst.BOF Then
Do While Not rst.EOF
'Preenche o LISTVIEW a partir da 2ª Coluna
Set li = lstLista.ListItems.Add(, "k" & rst.Fields(0), CheckNull(rst.Fields(1)))
'Fill in the rest of the columns
For i = 2 To rst.Fields.Count - 1
li.SubItems(i - 1) = CheckNull(rst.Fields(i))
'Preenche o LISTVIEW a partir da 1ª Coluna
' Set li = lstLista.ListItems.Add(, "k" & rst.Fields(0), CheckNull(rst.Fields(0)))
'Fill in the rest of the columns
' For i = 1 To rst.Fields.Count - 1
' li.SubItems(i) = CheckNull(rst.Fields(i))
Next
rst.MoveNext 'Move to next record
Loop
'Define os Tamanhos das colunas automaticamente
Call TamanhoColAutomatico
End If
'atualiza o label de mensagens
If rst.RecordCount <= 0 Then
lblMensagens.Caption = rst.RecordCount & " registros encontrados"
Else
lblMensagens.Caption = rst.RecordCount & " registros encontrados"
End If
Exit Sub
Postado : 19/11/2016 7:21 am