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!
É 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!
Só retificando :
If consulta![nome] <> 0 Then
Click em
se a resposta foi util!
Valeu muito obrigado!
Não sei porque mas ficou com um campo em branco no combobox, mas ao menos ficou 1 só...
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!