Importați date din Access to Excel (ADO) utilizând VBA în Microsoft Excel

Anonim

Cu procedura de mai jos puteți importa date dintr-un tabel Access într-o foaie de lucru.

Sub ADOImportFromAccessTable (DBFullName As String, _ TableName As String, TargetRange As Range) 'Exemplu: ADOImportFromAccessTable "C: \ FolderName \ DataBaseName.mdb", _ "TableName", Range ("C1") Dim cn As ADODB.Connection, r Ca ADODB.Recordset, intColIndex As Integer Set TargetRange = TargetRange.Cells (1, 1) 'deschide baza de date Set cn = New ADODB.Connection cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & _ DBFullName & ";" Set rs = New ADODB.Recordset With rs 'open the recordset .Open TableName, cn, adOpenStatic, adLockOptimistic, adCmdTable' all records '.Open "SELECT * FROM" & TableName & _ "WHERE [FieldName] =' MyCriteria '", cn,,, adCmdText 'filtru înregistrează RS2WS rs, TargetRange' scrie date din setul de înregistrări în foaia de lucru '' abordare opțională pentru Excel 2000 sau o versiune ulterioară (RS2WS nu este necesar) 'Pentru intColIndex = 0 Pentru rs.Fields.Count - 1' numele câmpului „TargetRange.Offset (0, intColIndex) .Value = rs.Fields (intColIndex) .Nume„ Next ”TargetRange.Offset (1, 0). cn.Close Set cn = Nothing End Sub

Exemplele macro presupun că proiectul dvs. VBA a adăugat o referință la biblioteca de obiecte ADO.
Puteți face acest lucru din VBE selectând meniul Instrumente, Referințe și selectând Microsoft
ActiveX Data Objects x.x Library de obiecte.
Utilizați ADO dacă puteți alege între ADO și DAO pentru importul sau exportul de date.