A rotina abaixo acessa o .mdb da Northwind realiza uma consulta e retorna os dados em uma nova planilha:
Sub ObtendoDadosAccess()
''' OBSERVAÇÃO: Esta sub-rotina requer que você faça referência à
''' última versão da seguinte biblioteca:
'''
''' Biblioteca do Microsoft ActiveX Data Objects
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim Nsql As String, Njoin As String, Ncriteria As String
Dim NewBook As Workbook
Dim i As Integer
' Cria o objeto Connection.
Set conn = New ADODB.Connection
With conn
' Define o provedor OleDB para a conexão.
.Provider = "Microsoft.JET.OLEDB.4.0"
' Abre uma conexão com o Northwind.mdb.
.Open Application.Path & "samplesnorthwind.mdb"
End With
Nsql = "SELECT DISTINCTROW Categorias.NomeDaCategoria, " _
& "Produtos.NomeDoProduto, Produtos.QuantidadePorUnidade, " _
& "Produtos.PreçoUnitário "
Njoin = "FROM Categorias INNER JOIN Produtos ON " _
& "Categorias.CódigoDaCategoria = Produtos.CódigoDaCategoria "
Ncriteria = "WHERE ((([Produtos].Descontinuado)=No) AND (([Produtos].UnidadesEmEstoque)>20));"
' Cria um novo objeto Recordset.
Set rst = New ADODB.Recordset
With rst
' Conecta este conjunto de registros à conexão aberta anteriormente.
.ActiveConnection = conn
' Recupera todos os registros da tabela Clientes.
.Open Nsql & Njoin & Ncriteria, conn, adOpenDynamic, _
adLockBatchOptimistic
End With
' Adiciona uma nova planilha a esta pasta de trabalho
Set NewBook = Workbooks.Add
' Efetua loop em todos os campos, retornando os nomes de campos
' à planilha.
For i = 0 To rst.Fields.Count - 1
NewBook.Sheets(1).Range("a1").Offset(0, i).Value = rst.Fields(i).Name
Next i
' Copia o conjunto de registros para a nova planilha.
NewBook.Sheets(1).Range("a2").CopyFromRecordset rst
' Fecha o conjunto de registros.
Set rst = Nothing
' Fecha a conexão.
conn.Close
End Sub
Embora simples acredito que esse exemplo sirva de base para muitos outros projetos.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 31/10/2009 9:25 am