Limpar listbox se t...
 
Notifications
Clear all

Limpar listbox se textbox estiver sem texto

7 Posts
3 Usuários
0 Reactions
1,857 Visualizações
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Tenho uma textbox1 que uso como filtro para pesquisar dados que são carregados em minha listbox1, meu problema é que ao digitar textos na textbox e depois limpar, a minha listbox acaba carregando todos os dados, isso tem tornado o meu modo de pesquisa "lento"

oque posso fazer para que minha busca seja mais rápida?

acredito que se toda vez que minha textbox for = "" a minha listbox.clear, talvez assim poderia resolver, mas como posso atribuir em código?

 
Postado : 16/10/2013 6:41 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

wfranca,

Compacte seu arquivo e anexe o mesmo aqui.

 
Postado : 16/10/2013 7:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Franca, no achometro; o melhor e fazer e anexar um modelo, conforme o colega Morel disse; mas provavelmente no evento change ou similar da sua Txt está disparando a rotina do filtro, então ai pode ser adicionadp um Se (+/- assim)
If suatxt.text <>"" then
executa o filtro
end if

 
Postado : 16/10/2013 8:20 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Franca, minha bola de cristal está em sintonia com a do Reinaldo, então seguindo pela mesma obs do colega, supomos que a rotina filtro está sendo executada no evento Change do Textbox, então é só acrescentar :

ListBox1.Clear - para limpar o Listbox
E depois a condição :
If TextBox1.Value = "" Then Exit Sub - Se o txtbox estiver vazio sai da rotina.

[]s

 
Postado : 16/10/2013 8:48 am
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Pessoal segue meu modelo exemplo...

tentei adptar na minha texbox... mas fazendo essa adaptação o meu listbox não é carregado..

 
Postado : 17/10/2013 8:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Creio que poderia ser +/- assim:

Private Sub TextBoxFiltro_Change()
If Me.ComboBoxCampos.ListIndex <> -1 And TextBoxFiltro.Text <> "" Then
     Call PreencheLista(TextBoxFiltro.Text)
Else
    Me.ListBoxLista.Clear
End If
End Sub

Se a Combo e o Text forem diferente de "Vazio" filtra, senão limpa o listbox.
Quanto a demora, crei eu ser pela maneira de preenchimento do listbox,
a cada caracter digitado no textbox é disparada a rotina "Preenchelista", que por sua vez chama PreencheCabecalho, que em suas rotinas percorrem as colunas existentes (são 12 porem como utiliza o usedrange, e considerado até coluna N quetemum valor em N3, então chega a 14).O que dá um efeito exponencial à consulta.
No anexo, efetuei algumas alterações, que aparentemente melhoram um pouco a "coleta" das informações, talvez lhe auxilie

 
Postado : 18/10/2013 7:25 am
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Boa Reinaldo... assim ajudou muito.

 
Postado : 18/10/2013 2:35 pm