O listbox apesar ser uma ferramenta simples para listagem de dados, é um dos controles mais usados na programação vba. Eu particularmente gosto bastante dele, apesar que hoje não o utilizo muito em meus projetos.

Algumas limitações do listbox me fizeram migrar para outros controles de listagem, mas ainda o uso quando preciso. Nesse post não irei me aprofundar nesse assunto, deixarei esse link caso não saiba o que é o listbox.

Hoje quero mostrar para vocês uma forma simples de listar dados de uma tabela access no listbox. Se você ainda não sabe realizar conexões com o banco de dados access, o artigo a seguir irar ajudar você nessa façanha.

Registrar Dados Do VBA Excel No Access

Listbox Do VBA – Preencher Com Dados Do Access

Evite acentos no nome das colunas da tabela…

Abra seu access e crie um novo banco de dados que chamaremos de Banco. Nesse BD devemos criar uma tabela que se chamará de TBDados, e ela terá os campos Codigo, Nome, Idade e Sexo.

Listbox do vba - Preencher com dados do access img 1

lembre-se de marca a referência ADO…

Após criar sua base de dados, abra seu excel e adicione um novo módulo. Dentro desse módulo nós iremos desenvolver o código que se conectará com nossa base de dados (Banco).

Public db As New ADODB.Connection
Public rs As New ADODB.Recordset
Public CaminhoBanco As String


Public Sub ConectDB()
    CaminhoBanco = ActiveWorkbook.Path & "\Banco.accdb"
        db.Open "Provider=microsoft.ACE.oledb.12.0 ;data Source =" & CaminhoBanco
End Sub


Public Sub FechaDB()
     Set db = Nothing
     Set rs = Nothing
End Sub

Listbox do vba - Preencher com dados do access img 2

Apenas mudei os Captions dos controles…

Uma vez criada a estância de conexão precisamos incluir um novo UserForm, e a ele adicionar o controle listbox e um CommandButton .  Nesse projeto nós optamos por deixar as propriedades padrões dos controles.

Listbox do vba - Preencher com dados do access img 3

De um duplo clique no “botão preencher” do formulário e dentro do seu evento clique vamos adicionar o nosso código.

Dim LinhaListbox As Integer
    
     LinhaListbox = 0
     ListBox1.Clear
     ListBox1.ColumnCount = 4
     ListBox1.ColumnWidths = "40;120;40;55"
    
     ConectDB
         rs.Open "Select * from TBDados", db, 3, 3
            Do Until rs.EOF
                 
                     With ListBox1
                          
                        .AddItem
                            .List(LinhaListbox, 0) = rs!Codigo
                            .List(LinhaListbox, 1) = rs!Nome
                            .List(LinhaListbox, 2) = rs!idade
                            .List(LinhaListbox, 3) = rs!Sexo
                       
                       LinhaListbox = LinhaListbox + 1
                       
                     End With
        
                 rs.MoveNext
            Loop
     FechaDB

Listbox do vba - Preencher com dados do access img 5

Listbox do vba - Preencher com dados do access gif 1

Pronto você agora pode preencher seu listbox com os dados da tabela. Nesse exemplo nós criamos os comandos dentro do próprio formulário, se você estiver usando módulos lembre-se de referenciar o formulário.

Se você enfrentou dificuldades para criar esse projeto, deixarei aqui o link de download dos arquivos. Se esse artigo foi útil, não se esqueça de deixar seu comentário e compartilhar esse artigo com seus amigos.

A baixo vou listar alguns artigos que podem ser importante para você…

Tags:

Sobre o Autor

Welisson Silva
Welisson Silva

Analista de Sistemas, trabalha com TI desde 2014. Especializado em Vendas Online, desenvolvedor, programador, guitarrista e entusiasta de tudo que envolva tecnologia.