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:


José Carlos Macoratti