Notifications
Clear all

Problemas na alimentação de uma combobox

5 Posts
2 Usuários
0 Reactions
1,107 Visualizações
(@jorgep-tec)
Posts: 37
Eminent Member
Topic starter
 

Boa tarde pessoal,

Tenho uma combobox que é alimentada através de dados que se encontram num banco de dados do access.

Consigo fazer a conexão e ele pega os dados da coluna conforme eu quero.

O problema se dá que eu não quero que apareça dados em branco no meu combobox e pelo que vi isso ocorre poque minha tabela tem no momento 17 linhas mas na coluna "Nome" apenas 9. Logo minha combobox fica com 9 nomes e 8 campos em branco pra totalizar os 17.

É possível a eliminação desses campos em branco?

Segue o meu código:



Private Sub UserForm_Initialize()


    'Cria variável que armazena os comandos SQL
    Dim ComandoSQL As String
    
    'Armazena na variável o comando que fará a consulta SQL no BD Access
    ComandoSQL = "select Nome from tabela_clientes"
       
    'Chama a rotina que faz a conexão com o BD
    Call Conecta
    
    'Atribui a variável objeto de BD a execução dos comandos SQL
    Set consulta = banco.OpenRecordset(ComandoSQL)
    
    'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
    On Error Resume Next
        
    'Populando o Listview1
 
    
    consulta.MoveFirst
    With Me.ComboBox1
        .Clear
        Do
            .AddItem consulta![Nome]
            consulta.MoveNext
        Loop Until consulta.EOF
    End With
    
    
     
   Call Desconecta


   
End Sub

Segue meus arquivos em anexo.

ps: o caminho para o banco de dados está no módulo1, na Sub conecta

Desde já, obrigado!

 
Postado : 26/01/2015 10:48 am
Basole
(@basole)
Posts: 487
Reputable Member
 

É possível a eliminação desses campos em branco?

Voce quis disser eliminar "registros em branco" ?
Acrescentei essa linha ao codigo: If consulta![nome] <> Null Then
que ficou assim:

Private Sub UserForm_Initialize()
'Cria variável que armazena os comandos SQL
    Dim ComandoSQL As String
    'Armazena na variável o comando que fará a consulta SQL no BD Access
    ComandoSQL = "select Nome from tabela_clientes"
    'Chama a rotina que faz a conexão com o BD
    Call Conecta
    'Atribui a variável objeto de BD a execução dos comandos SQL
    Set consulta = banco.OpenRecordset(ComandoSQL)
    'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
    On Error Resume Next
    'Populando o Listview1
    consulta.MoveFirst
    With Me.ComboBox1
        .Clear
        Do
            If consulta![nome] <> Null Then '  * vefifica se o registro nao é nulo (em branco)
                .AddItem consulta![nome]
            End If
            consulta.MoveNext
        Loop Until consulta.EOF
    End With
    While Not consulta.EOF
        Set List = ListView1.ListItems.Add(Text:=consulta(0))  'id
        List.SubItems(1) = consulta(1)    'nome
        List.SubItems(2) = consulta(2)    'sobrenome
        List.SubItems(3) = consulta(3)    'CPF
        List.SubItems(4) = consulta(7)    'cidade
        List.SubItems(5) = consulta(8)    'UF
        consulta.MoveNext
    Wend
    Call Desconecta
End Sub

Click em se a resposta foi util!

 
Postado : 26/01/2015 1:43 pm
Basole
(@basole)
Posts: 487
Reputable Member
 

Só retificando :

If consulta![nome] <> 0 Then

Click em se a resposta foi util!

 
Postado : 26/01/2015 2:12 pm
(@jorgep-tec)
Posts: 37
Eminent Member
Topic starter
 

Valeu muito obrigado!
Não sei porque mas ficou com um campo em branco no combobox, mas ao menos ficou 1 só...
:D

 
Postado : 26/01/2015 5:39 pm
Basole
(@basole)
Posts: 487
Reputable Member
 

jorgep.tec,
as vezes é bom ter uma opçao de linha em branco.
Mas se quer eliminar essa opção, subst. por esta linha:

consulta![nome] <> ""

Click em se a resposta foi util!

 
Postado : 26/01/2015 7:41 pm