Página 1 de 1

Erro em preenchimento - campos vazios não preenche

Enviado: Qua Jan 09, 2019 12:37 pm
por George2342
Boa tarde colegas.

Estou tendo problemas no seguinte código abaixo, pois sempre que alguma célula está em branco dá erro... Parece que a listview só preenche se todas as células, de onde vem os dados, estiverem preenchidas.

Porém, em meu sisteminha nem sempre preencho todos os dados. Gostaria de saber se tem como a Listviw se preencher mesmo se houver linhas em branco, sem nada... Deixando vazia a mesma.

O erro provavelmente ocorre nesse código: " .ListItems(1).ListSubItems.Add 2, , banco(67) " e seguintes... conforme você observem abaixo:


'Código completo abaixo:


Private Sub txtPesquisa_Change()

Dim cx As New ClasseConexao
Dim banco As ADODB.Recordset
Dim sql As String



ProcurarPor = Me.cboPesquisarPor.Text
OrdenarPor = Me.cboOrdenarPor.Text

With Me.lstv
.ListItems.Clear

sql = "SELECT codigo, Nome_de_Cliente, contato, cargo, Endereço, Cidade, regiao, CEP, País, Telefone, Fax, HomePage," & _
"b1, b2, b3, b4, b5, b6, b7, b8, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26," & _
"be1, be2, be3, be4, be5,be6, be7, be8, be9, be10, be11, be12, be13, be14, be15, be16, be17, be18, be19, be20," & _
"bl1, bl3, bl5, bl7, bl9, bl11, bl13, Sistema_de_Peticionamento_Utilizado, bl15, bl16, bl17, bl18, bl19, bl20, bl22, bl23, bl25, bl26, bl27, Situação_dos_Serviços, bl101, bl102, bl103, necessidade_de_diligencia FROM Fornecedores "

If Me.chkPesquisa.Value = True Then
sql = sql & " WHERE " & ProcurarPor & " LIKE '%" & Me.txtPesquisa.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem

ElseIf Me.chkPesquisa.Value = False Then
sql = sql & " WHERE " & ProcurarPor & " LIKE '" & Me.txtPesquisa.Value & "%' ORDER BY " & OrdenarPor & " " & Ordem

End If

Set banco = New ADODB.Recordset
cx.Conectar

banco.Open sql, cx.Conn, adOpenKeyset, adLockOptimistic

'PUXAR DADOS DO ACCESS PARA O LISTVIW - O PROBLEMA SURGE AQUI, PORQUE AS CELULAS SEMPRE TÊM DE ESTAR PREENCHIDAS... NÃO ADMITE CELULA EM BRANCO...

Dim I As Integer
For I = 0 To banco.RecordCount - 1
If Not IsNull(banco(0)) Then
.ListItems.Add 1, , banco(0)

.ListItems(1).ListSubItems.Add 1, , banco(1)
.ListItems(1).ListSubItems.Add 2, , banco(67)
.ListItems(1).ListSubItems.Add 3, , banco(71)
.ListItems(1).ListSubItems.Add 4, , banco(1)
.ListItems(1).ListSubItems.Add 5, , banco(1)


End If
banco.MoveNext
Next I
Set banco = Nothing
cx.Desconectar
End With

Me.StatusBar1.Panels(1).Text = "Total de Itens Localizados: " & Me.lstv.ListItems.Count


End Sub

Re: Erro em preenchimento - campos vazios não preenche

Enviado: Qua Jan 09, 2019 1:26 pm
por PRMPOKER
Prezados, boa tarde.

Caro George2342, tudo bem?

Acrescente os seguintes caracteres no final da linha de inclusão do subitem:

& ""

Código: Selecionar todos

 
.ListItems(1).ListSubItems.Add 1, , banco(1) & ""
.ListItems(1).ListSubItems.Add 2, , banco(67) & ""
.ListItems(1).ListSubItems.Add 3, , banco(71) & ""
.ListItems(1).ListSubItems.Add 4, , banco(1) & ""
.ListItems(1).ListSubItems.Add 5, , banco(1) & ""
Faça o teste e nos avise.

Um abraço!

Re: Erro em preenchimento - campos vazios não preenche

Enviado: Qua Jan 09, 2019 2:36 pm
por George2342
Prezado PRMPOKER, boa tarde.

Nossa, que maravilha, funcionou perfeitamente. Fico super agradecido pela ajuda, muito obrigado mesmo.

Para quem está aprendendo sempre surgem algumas dúvidas, nesse caso eu havia esquecido completamente dessa parte.

Muito obrigado.