Importieren von Daten aus Access nach Excel (ADO) mit VBA in Microsoft Excel
Mit dem folgenden Verfahren können Sie Daten aus einer Access-Tabelle in ein Arbeitsblatt importieren.
Sub ADOImportFromAccessTable(DBFullName As String, _ TableName As String, TargetRange As Range) ' Example: 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) ' open the database 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 ' filter records RS2WS rs, TargetRange ' write data from the recordset to the worksheet ' ' optional approach for Excel 2000 or later (RS2WS is not necessary) ' For intColIndex = 0 To rs.Fields.Count - 1 ' the field names ' TargetRange.Offset(0, intColIndex).Value = rs.Fields(intColIndex).Name ' Next ' TargetRange.Offset(1, 0).CopyFromRecordset rs ' the recordset data End With rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
In den Makrobeispielen wird davon ausgegangen, dass Ihr VBA-Projekt einen Verweis auf die ADO-Objektbibliothek hinzugefügt hat.
Sie können dies in der VBE tun, indem Sie das Menü Extras, Verweise und Microsoft ActiveX Data Objects x.x Object Library auswählen.
Verwenden Sie ADO, wenn Sie für den Datenimport oder -export zwischen ADO und DAO wählen können.