VBA
- Acessando o Access 2007 com o Excel
Vou mostrar como podemos automatizar o Microsoft Excel usando a linguagem VBA através da criação de um programa para acessar um banco de dados Access 2007 e exibir os registros de uma tabela na planilha Excel.
É uma aplicação simples que mostra aos iniciantes e interessados automatizar tarefas no Microsoft Excel usando a linguagem VBA. Só isso.
Os recursos usados no projeto deste artigo foram:
Antes de iniciar temos que realizar duas configurações no Microsoft Excel 2007:
Obs: A necessidade de habilitar a execução de macros é que por padrão, o Excel coloca um nível de segurança mais elevado pois códigos maliciosos podem ser executados em scripts através de macros no Excel.
Vamos ativar a guia do desenvolvedor e logo em seguida habilitar a execução de macros.
Para ativar a guia do desenvolvedor (se ainda não estiver ativa) siga os seguintes passos:
Abra o Excel 2007 e ative o Menu principal de opções clicando no botão superior a esquerda, conforme a figura abaixo;
![]() |
A seguir clique na guia Opções do Excel para abrir a janela - Opções do Excel;
![]() |
Nesta janela, selecione o item - Mais Usados - e a seguir marque o item - Mostrar guia Desenvolvedor na Faixa de Opções e clique no botão OK;
No menu do Excel selecione a guia do Desenvolvedor e em seguida clique em Segurança de Macro;
![]() |
Na janela Central de Confiabilidade selecione a opção - Configurações de Macro - e marque o item para habilitar todas as macros conforme a figura abaixo:
![]() |
Pronto , feito isso já podemos iniciar o desenvolvimento da aplicação VBA no Excel 2007.
Abra então o Excel 2007 , será aberta uma planilha em branco.
Clique no menu Desenvolvedor e a seguir no sub-menu Inserir para abrir a caixa de controles de Formulário;
Selecione o primeiro Item da caixa - Botão - e a seguir com o mouse desenhe o botão em um local da planilha na qual você deseja que o botão seja exibido;
![]() |
Ao desenhar o botão será aberto a caixa - Atribuir Macro - onde vamos definir o nome de uma macro que iremos criar no evento do botão;
Definimos ao evento Click do botão a rotina AcessaMDB que iremos criar me seguida;
![]() |
Antes de espiar o código Visual Basic gerado selecione o botão e clique com botão direito do mouse e no menu suspenso selecione - Editar Texto - e altere o texto do botão para Acessar Dados;
![]() |
Agora clique no sub-menu Visual Basic para abrir a janela do editor de Código:
![]() |
Com a janela do editor Microsoft Visual Basic aberta podemos visualizar o código do Modulo1 que mostra a rotina acessaMDB atribuída ao evento Click do botão;
![]() |
Vamos incluir um novo Modulo e para isso clique com o botão direito do mouse sobre a Pasta Módulos e selecione as opções Inserir->Módulo;
![]() |
Vamos aceitar o nome Modulo2 dado por padrão ao novo módulo e a seguir definir a rotina AcessaMDB() conforme o código abaixo neste módulo:
![]() |
Este código usa a ADO para acessar o banco de dados criando as variáveis objeto rs do tipo Recordset e cn do tipo Connection;
Após abrir a conexão usando a string de conexão : "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\dados\TesteAccess2007.accdb;Persist Security Info=False"
Geramos o Recordset usando a instrução SQL - Select * from Teste - onde Teste é o nome da tabela;
Em seguida a linha de código: ActiveWorkbook.Sheets("Plan1").Cells(1, 1).CopyFromRecordset rs
Copia os dados da tabela para a planilha Plan1 a partir da célula(1,1).
Após isso clique ícone
para
Salvar o código e retorne ao Excel clicando no ícone
do mesmo
no menu da janela de código.
Eu criei um banco de dados chamado TesteAccess2007.accdb no Access 2007 e o coloquei na basta c:\dados;
Neste banco de dados eu criei uma tabela chamada Teste com os seguintes dados:
![]() |
Nosso objetivo é acessar a tabela Teste e copiar os dados da tabela para planilha a partir a células 1,1;
Abrindo a planilha no Excel iremos ver a planilha vazia o botão de comando :
![]() |
Clicando no botão de comando iremos chamar a rotina acessaMDB que irá copiar os dados da tabela Teste para a planilha:
![]() |
Para salvar a sua planilha clique no botão Salvar Como e selecione - Pasta de Trabalho Habilitada para Macros no Excel:
![]() |
E dessa forma usando VBA vimos como acessar um banco de dados Access 2007 usando o Excel 2007 e copiar os dados de uma tabela para o Excel.
Pegue o projeto completo aqui: AcessoAccess2007_VBA.zip (Obs: O banco de dados você mesmo pode criar)
Eu sei é apenas Visual Basic for
Applications (VBA),
mas eu gosto...
"Em verdade , em verdade vos digo que vem a hora, e agora é, em que os mortos ouvirão a voz do Filho de Deus, e os que a ouvirem viverão."(João-5:25)
Referências: