Nhập dữ liệu từ Access vào Excel (ADO) bằng VBA trong Microsoft Excel
Với quy trình bên dưới, bạn có thể nhập dữ liệu từ bảng Access vào trang tính.
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
Các ví dụ macro giả định rằng dự án VBA của bạn đã thêm một tham chiếu vào thư viện đối tượng ADO.
Bạn có thể thực hiện việc này từ bên trong VBE bằng cách chọn menu Tools, References và chọn Microsoft ActiveX Data Objects x.x Object Library.
Sử dụng ADO nếu bạn có thể chọn giữa ADO và DAO để nhập hoặc xuất dữ liệu.