Microsoft Excel'de VBA kullanarak Access'ten Excel'e (ADO) veri aktarma

Anonim

Aşağıdaki prosedürle, bir Access tablosundan bir çalışma sayfasına veri aktarabilirsiniz.

Sub ADOImportFromAccessTable(DBFullName As String, _ TableName As String, TargetRange As Range) ' Örnek: ADOImportFromAccessTable "C:\FolderName\DataBaseName.mdb", _ "TableName", Range("C1") Dim cn As ADODB.Conne. ADODB.Recordset olarak, intColIndex As Integer Set TargetRange = TargetRange.Cells(1, 1) ' veritabanını aç Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ DBFullName & ";" Set rs = New ADODB.Recordset rs ile kayıt kümesini açın .Open TableName, cn, adOpenStatic, adLockOptimistic, adCmdTable 'tüm kayıtları' açın. "SELECT * FROM " & TableName & _ " WHERE [FieldName] = 'MyCriteria'", cn, , , adCmdText ' filtre kayıtları RS2WS rs, TargetRange ' kayıt kümesinden çalışma sayfasına veri yazar ' ' Excel 2000 veya sonrası için isteğe bağlı yaklaşım (RS2WS gerekli değildir) ' intColIndex için = 0 To rs.Fields.Count - 1 ' alan adları ' TargetRange.Offset(0, intColIndex).Value = rs.Fields(intColIndex).Name ' Next ' TargetRange.Offset(1, 0).CopyFromRecordset rs ' kayıt kümesi verileri End With rs.Close Set rs = Nothing cn.Close Set cn = Hiçbir Şey Bitmez Alt

Makro örnekleri, VBA projenizin ADO nesne kitaplığına bir başvuru eklediğini varsayar.
Bunu, Araçlar, Referanslar menüsünü seçip Microsoft'u seçerek VBE içinden yapabilirsiniz.
ActiveX Veri Nesneleri x.x Nesne Kitaplığı.
Veri içe veya dışa aktarma için ADO ve DAO arasında seçim yapabiliyorsanız ADO'yu kullanın.