Importuj dane z programu Access do Excela (ADO) za pomocą VBA w programie Microsoft Excel

Anonim

Poniższa procedura umożliwia importowanie danych z tabeli programu Access do arkusza.

Sub ADOImportFromAccessTable(DBFullName As String, _ TableName As String, TargetRange As Range) ' Przykład: ADOImportFromAccessTable "C:\FolderName\DataBaseName.mdb", _ "TableName", Range("C1") Dim cn As ADODB.Connection, rs As ADODB.Recordset, intColIndex As Integer Set TargetRange = TargetRange.Cells(1, 1) ' otwórz bazę danych Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ DBPełnaNazwa & ";" Ustaw rs = Nowy ADODB.Recordset With rs ' otwórz zestaw rekordów .Open TableName, cn, adOpenStatic, adLockOptimistic, adCmdTable ' wszystkie rekordy '.Open "SELECT * FROM " & TableName & _ " WHERE [FieldName] = 'MyCriteria'", cn, , , adCmdText ' filtr rekordów RS2WS rs, TargetRange ' zapis danych z zestawu rekordów do arkusza ' ' podejście opcjonalne dla programu Excel 2000 lub nowszego (RS2WS nie jest konieczne) ' For intColIndex = 0 To rs.Fields.Count - 1 ' nazwy pól ' TargetRange.Offset(0, intColIndex).Value = rs.Fields(intColIndex).Name ' Next ' TargetRange.Offset(1, 0).CopyFromRecordset rs ' dane zestawu rekordów End With rs.Close Set rs = Nothing cn.Close Ustaw cn = Nic Koniec Sub

Przykłady makr zakładają, że projekt VBA dodał odwołanie do biblioteki obiektów ADO.
Możesz to zrobić z poziomu VBE, wybierając menu Narzędzia, Referencje i wybierając Microsoft
ActiveX Data Objects x.x Biblioteka obiektów.
Użyj ADO, jeśli możesz wybrać między ADO i DAO do importu lub eksportu danych.