Mình ví dụ thế này nhé . CSDL có rất nhiều bảng con liên kết với nhau . Việc trích lọc dữ liệu bằng VLOOKUP sẽ duyệt từng dòng mà thực tế yêu cầu trích lọc rất đa dạng (có nhiều field) ,số dòng duyệt cũng nhiều vì thế mình cần tham khảo : hướng và phương pháp thực hiện trước khi mình xây dựng CSDL . Vì thế mình gởi file ví dụ lên ,mong bạn cùng mọi người giúp đỡ ,xin cám ơn
Bạn thích chơi kiểu " ví dụ " thì mình cũng ví dụ 2 cách làm cho bạn :
* Đưa toàn bộ dữ liệu dưới dạng mảng , rồi xử lý trên mảng :
* Thích kiểu truy vấn giống SQL thì tham khảo code dưới thử xem :
[GPECODE=vb]
Sub NMH()
Dim cnn As Object, rst As Object
Dim SQL As String
Set cnn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.recordset")
With cnn
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 12.0;HDR=No;IMEX=1;"";"
.Open
End With
SQL = "SELECT T1.f1,T1.f2,T2.f2 " & _
"FROM [Sheet1$B5

12] T1 " & _
"INNER JOIN [Sheet1$I5:J12] T2 ON T1.f3 = T2.f1"
rst.Open SQL, cnn, 3, 3, 1
[B29

100].ClearContents: [B29].CopyFromRecordset rst
rst.Close: Set rst = Nothing
cnn.Close: Set cnn = Nothing
End Sub
[/GPECODE]