Quy trình dưới đây có thể được sử dụng để lấy bộ bản ghi ADO từ tệp văn bản và điền kết quả vào trang tính.

Sub GetTextFileData(strSQL As String, strFolder As String, rngTargetCell As Range)

' example: GetTextFileData "SELECT * FROM filename.txt", _

"C:\FolderName", Range("A3")

' example: GetTextFileData "SELECT * FROM filename.txt WHERE fieldname = 'criteria'", _

"C:\FolderName", Range("A3")

Dim cn As ADODB.Connection, rs As ADODB.Recordset, f As Integer

If rngTargetCell Is Nothing Then Exit Sub

Set cn = New ADODB.Connection

On Error Resume Next

cn.Open "Driver={Microsoft Text Driver (.txt; .csv)};" & _

"Dbq=" & strFolder & ";" & _

"Extensions=asc,csv,tab,txt;"

On Error GoTo 0

If cn.State <> adStateOpen Then Exit Sub

Set rs = New ADODB.Recordset

On Error Resume Next

rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText

On Error GoTo 0

If rs.State <> adStateOpen Then

cn.Close

Set cn = Nothing

Exit Sub

End If

' the field headings

For f = 0 To rs.Fields.Count - 1

rngTargetCell.Offset(0, f).Formula = rs.Fields(f).Name

Next f

rngTargetCell.Offset(1, 0).CopyFromRecordset rs ' works in Excel 2000 or later

'RS2WS rs, rngTargetCell ' works in Excel 97 or earlier

rs.Close

Set rs = Nothing

cn.Close

Set cn = Nothing

End Sub

Thủ tục có thể được sử dụng như sau:

Sub TestGetTextFileData()

Application.ScreenUpdating = False

Workbooks.Add

GetTextFileData "SELECT * FROM filename.txt", "C:\FolderName", Range("A3")

'    GetTextFileData "SELECT * FROM filename.txt WHERE fieldname = 'criteria'", _

"C:\FolderName", Range("A3")

Columns("A:IV").AutoFit

ActiveWorkbook.Saved = True

End Sub

Thay thế filename.txt bằng tên của tệp văn bản mà bạn muốn lấy dữ liệu.

Thay thế C: \ FolderName bằng tên của thư mục nơi tệp văn bản được lưu.

Hàng đầu tiên trong tệp văn bản sẽ được sử dụng làm tiêu đề cột / tên trường.

Mỗi cột có datwa phải được phân tách bằng ký tự phân tách danh sách được sử dụng trong cài đặt khu vực trong Bảng điều khiển. I Na Uy, đây thường là dấu chấm phẩy (;), ở các quốc gia khác, đây có thể là dấu phẩy (,).

Bạn sẽ tìm thấy quy trình RS2WS bằng cách nhấp vào liên kết này.

Ví dụ macro giả định rằng dự án VBA của bạn đã thêm một tham chiếu đến 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.