Sim meus caros, não há caso mais clássico, mesmo após o advento do Power Pivot, do que a utilização no MS Excel, de dados oriundos do MS Access. Divirtam-se
É importante adicionar as referências necessárias de acordo com os objetos que for utilizar.
Efetuaremos uma consulta SQL usando os objetos ADO:
Para este código que usa o objeto ADO, adicionar referência à Microsoft ActiveX Data Objects 2.8 Library
Private Sub Access_ADO()Dim rs As ADODB.RecordsetDim cn As ADODB.ConnectionDim strDB As StringDim strSQL As StringSet cn = New ADODB.ConnectionSet rs = New ADODB.RecordsetLet strDB = ThisWorkbook.Path & "\bernardes\Data.accdb"Let cn.ConnectionString = _"Provider=Microsoft.ACE.OLEDB.12.0;" & _"Data Source=" & strDB & ";"cn.OpenLet strSQL = _"SELECT [tbl_Contacts].Name, [tbl_CRMs].Description " & _"FROM [tbl_Contacts] " & _"INNER JOIN [tblCores] " & _"ON [tbl_Contacts].Description_ID = [tbl_CRMs].Description_ID"Set rs = cn.Execute(strSQL)If rs.RecordCount > 0 ThenDo While Not rs.EOFDebug.Print rs.Fields("Name"), rs.Fields("Description")rs.MoveNextLoopEnd Ifrs.Closecn.CloseEnd Sub
Criando um consulta SQL usando os objetos DAO:
Para o objeto DAO, adicionar a referência ao Microsoft DAO 3.5 Library.Private Sub Access_DAO()Dim db As DAO.DatabaseDim rs As DAO.RecordsetDim strSQL As String
Set db = CurrentDb()Let strSQL = _"SELECT [tbl_Contacts].Name, [tbl_CRMs].Description " & _"FROM [tbl_Contacts] " & _"INNER JOIN [tblCores] " & _"ON [tbl_Contacts].Description_ID = [tbl_CRMs].Description_ID"
Set rs = db.OpenRecordset(strSQL)
If rs.RecordCount > 0 ThenDo While Not rs.EOF
Debug.Print rs.Fields("Name"), rs.Fields("Description")rs.MoveNextLoopEnd IfEnd Sub
Executando a consulta SQL usando os objetos ADOX:
Adicione a referência Ext. 2.8 for DDL and SecurityPrivate Sub AccessADOX()Dim cn As ADODB.ConnectionDim ct As ADOX.CatalogDim tb As ADOX.TableDim strDB As StringSet cn = New ADODB.ConnectionSet ct = New ADOX.CatalogLet strDB = "c:\bernardes\Data.accdb"Let cn.ConnectionString = _"Provider=Microsoft.ACE.OLEDB.12.0;" & _"Data Source=" & strDB & ";"cn.OpenSet ct.ActiveConnection = cnFor Each tb In ct.TablesIf tb.Type = "TABLE" ThenDebug.Print tb.NameEnd IfNext tbcn.CloseSet ct = NothingSet cn = NothingEnd Sub
Nenhum comentário:
Postar um comentário