ListBox VBA – Como Preencher Com Dados da Tabela Access?
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.
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).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 |
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.
De um duplo clique no “botão preencher” do formulário e dentro do seu evento clique vamos adicionar o nosso código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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 |
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ê…