Você está na página 1de 4

c 



 
 Ê
Ê
Geralmente recebo emails com dúvidas em como acessar dados com aplicativos
Office como Word , Excel , PowerPoint , etc. Ê

Eu sempre prometo que irei colocar um artigo sobre o assunto no site , e hoje
estou cumprindo o prometido. Ê

Quero deixar claro que não pretendo abordar este assunto em futuros artigos pois ,
embora o VBA esteja intimamente relacionado com o Visual Basic e a integração
com os aplicativos Office seja uma questão muito importante , simplesmente eu
não teria tempo para tratar de tantos assuntos relacionados. Então queiro reiterar
que o foco é Visual Basic , VB.NET e ASP e ASP.NET. Ê

Você pode usar código Visual Basic em seus aplicativo office para automatizar
tarefas e dar maior produtividade a seus arquivos .doc e suas planilhas eletrônicas. Ê

Neste artigo eu vou mostrar como você pode acessar uma base de dados Access e
preencher uma planilha Excel com os dados obtidos usando o editor Visual Basic do
Excel.Ê

Os artigos já publicados no site sobre VBA podem lhe ajudar a ter uma visão geral
do assunto: Ê

Ê D
c Aprenda a usar o VBA em suas aplicações VB. Tenha o Office aos seus pés. Ê
Ê D
c
 
c c Neste artigo mostramos como usar ADO com
Ê
Visual Basic , VBScript e VBA ( Visual Basic for Applications).

Vamos acessar o banco de dados ^   e obter informações que serão


exibidas na planilha Excel. Eu criei uma consulta que retorna o valor total de
compras e a quantidade realizada por cada cliente. O código SQL é o seguinte : Ê

SELECT Orders.CustomerID, Sum([Order Details].UnitPrice) AS ValorTotal,


Sum([Order Details].Quantity) AS QuantidadeTotal
FROM (Customers INNER JOIN Orders ON Customers.CustomerID =
Orders.CustomerID) INNER JOIN [Order Details] ON Orders.OrderID = [Order
Details].OrderID
GROUP BY Orders.CustomerID
ORDER BY Orders.CustomerID;

bra o o Excel (eu estou usando o Excel do Office 97) e no menu Ferramentas
selecione o  c
 
Ê

No menu A  
do Editor selecione a opção  
e inclua a
biblioteca de acesso a dados ADO no projeto. Sem isto não teremos acesso aos
objetos de acesso a dados. Ê
Ê
No menu Inserir do Editor selecioneD
A para incluir um novo formulário no
seu projeto.Ê

Na caixa de ferramentas insira um objeto     e um


objeto ! "no formulário.(^   
         Ê

Os nomes usados no projeto são: Ê

*Ê    - formulário do projeto Ê


*Ê  #    - botão de comando Ê

Clique duas vezes sobre o botão de comando para poder inserir o código VBA que
irá conectar com o banco de dados e extrair as informações para o Excel.Ê

O seu ambiente de trabalho deverá estar parecido com o da figura abaixo. Ê


Agora inclua o seguinte código no evento Click do botão de comando: Ê

Private Sub cmdConexaoBD_Click()


Dim sql As StringÊ
Dim cn As ADODB.ConnectionÊ
Dim rs As ADODB.RecordsetÊ
Dim i As Integer
'define a conexão com o banco de dados Northwind.mdb Ê
Set cn = New ADODB.ConnectionÊ
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=d:/teste/Northwind.mdb"Ê
cn.Open
'define um novo objeto recordset Ê
Set rs = New ADODB.Recordset
'define a instrução sqlÊ
sql = "SELECT Orders.CustomerID, Sum([Order Details].UnitPrice) AS ValorTotal,
Sum([Order Details].Quantity) AS QuantidadeTotal"Ê
sql = sql & " FROM (Customers INNER JOIN Orders ON Customers.CustomerID =
Orders.CustomerID) Ê
sql = sql & " INNER JOIN [Order Details] ON Orders.OrderID = [Order
Details].OrderID"Ê
sql = sql & " GROUP BY Orders.CustomerID" Ê
sql = sql & " ORDER BY Orders.CustomerID"
'gera o recordset para o sql sobre a conexao definidaÊ
rs.Open sql, cn
'define o cabeçalho das células no excelÊ
Range("A1").Value = "Codigo do Cliente" Ê
Range("B1").Value = "Quantidade Total"Ê
Range("C1").Value = "Valor total dos Pedidos"

i = 2Ê
If Not rs.EOF ThenÊ
Do While Not rs.EOFÊ
Range("A" & i).Value = rs(0)Ê
Range("B" & i).Value = rs(2)Ê
Range("C" & i).Value = rs(1)Ê
rs.MoveNextÊ
i = i + 1Ê
LoopÊ
End If

cn.Close

End SubÊ
ÊÊ

O código é muito simples ; geramos um objeto recordset via instrução SQL e


preenchemos a planilha Excel.Ê

Ao executar o projeto o formulário irá abrir e quando o usuário clicar no botão de


comando teremos o resultado exibido na figura abaixo: Ê

Pronto , você acabou de criar um formulário com código ADO que acessa um banco
de dados e preenche uma planilha EXCEL ; tudo isto feito no próprio EXCEL com o
editor Visual Basic.Ê

Como VBA no Excel e sua competência e imaginação , o céu é o limite... Ê

Eu sei é apenas VBA , mas eu gosto .... Ê


Ê

Você também pode gostar