Erro em preenchimento - campos vazios não preenche
Enviado: Qua Jan 09, 2019 12:37 pm
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
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