sealand
Thành viên gạo cội
- Tham gia
- 16/5/08
- Bài viết
- 4,883
- Được thích
- 7,688
- Giới tính
- Nam
- Nghề nghiệp
- Kế Toán
Nhân có bài của 1 bạn về việc dùng ADO trích rút dữ liệu như sau:
-Có 3 (n) file trong cùng thư mục với file Tonghop.xls như :TL01-10.xls, TL02-10.xls, TL03-10.xls ...
-Trong File Tonghop.xls có các Sheet: A1, A2,A3
-Dùng ADO để trích dữ liệu từ TL01-10.xls vào sheet A1, TL02-10.xls vào sheet A2, TL03-10.xls vào sheet A3
Mình dùng thử 3 dạng kết nối dữ liệu DAO, ADO,QUERY TABLE và thấy rằng cái nào cũng có cái hay của nó.
Để tiện cho việc tham khảo mình mạn phép mở Topic mới để các bạn trao đổi thêm và dễ tìm kiếm về sau:
Phần 1: Sử dụng ADO
Trước hết trong cửa sổ Module ta chuẩn bị viết Code ta phải tham chiếu đến 1 trong các thư viện Microsoft ActiveX Data Objects x.x Liabrary (Tốt nhất là phiên bản cao nhất Microsoft ActiveX Data Objects 2.8 Liabrary) bằng cách vào Tools--->Reference---> Chọn đánh dấu dòng có tên như trên trong danh sách.
Nhập đoạn code sau vào trong Module:
Giờ ta có thể test sự hoạt động của nó. Code trong bài chỉ mới là cóp nhặt chưa phải là chuẩn mực. Mong các bạn hiệu đính giùm.
Các bạn tham khảo file ví dụ kèm theo (Trong file mình sử dụng 1 phần file danh sách trúng tuyển Đại học thương mại 2011 làm dữ liệu, mong thông cảm)
(Một lưu ý quan trọng là phải tải và giải nén thư mục ra ổ đĩa Code mới tìm thấy đường dẫn file)
-Có 3 (n) file trong cùng thư mục với file Tonghop.xls như :TL01-10.xls, TL02-10.xls, TL03-10.xls ...
-Trong File Tonghop.xls có các Sheet: A1, A2,A3
-Dùng ADO để trích dữ liệu từ TL01-10.xls vào sheet A1, TL02-10.xls vào sheet A2, TL03-10.xls vào sheet A3
Mình dùng thử 3 dạng kết nối dữ liệu DAO, ADO,QUERY TABLE và thấy rằng cái nào cũng có cái hay của nó.
Để tiện cho việc tham khảo mình mạn phép mở Topic mới để các bạn trao đổi thêm và dễ tìm kiếm về sau:
Phần 1: Sử dụng ADO
Trước hết trong cửa sổ Module ta chuẩn bị viết Code ta phải tham chiếu đến 1 trong các thư viện Microsoft ActiveX Data Objects x.x Liabrary (Tốt nhất là phiên bản cao nhất Microsoft ActiveX Data Objects 2.8 Liabrary) bằng cách vào Tools--->Reference---> Chọn đánh dấu dòng có tên như trên trong danh sách.
Nhập đoạn code sau vào trong Module:
Mã:
Option Explicit
Sub ADO_EXCEL()
Dim cn As ADODB.Connection, rs As ADODB.Recordset
Dim strcn As String, strSQL As String, i
Dim FileNguon, FileName(), ShName()
FileName = Array("TL01-10.xls", "TL02-10.xls", "TL03-10.xls")
ShName = Array("A1", "A2", "A3")
For i = 0 To UBound(FileName)
FileNguon = ThisWorkbook.Path & "\" & FileName(i)
strcn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & FileNguon & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""
strSQL = "SELECT * FROM [A$]"
Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient
cn.Open strcn
Set rs = New ADODB.Recordset
rs.Open strSQL, cn, adOpenKeyset, adLockReadOnly
With Worksheets(ShName(i))
.Cells.ClearContents
.[A1].CopyFromRecordset rs
.Columns.AutoFit
End With
Next
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
Giờ ta có thể test sự hoạt động của nó. Code trong bài chỉ mới là cóp nhặt chưa phải là chuẩn mực. Mong các bạn hiệu đính giùm.
Các bạn tham khảo file ví dụ kèm theo (Trong file mình sử dụng 1 phần file danh sách trúng tuyển Đại học thương mại 2011 làm dữ liệu, mong thông cảm)
(Một lưu ý quan trọng là phải tải và giải nén thư mục ra ổ đĩa Code mới tìm thấy đường dẫn file)
File đính kèm
Lần chỉnh sửa cuối: