Vấn đề sử dụng các phép nối bảng trên SQL , em cũng từng ngâm cứu qua( nhưng mà vẫn lơ mơ lù mù ),cụ thể sự khác nhau giữa các phương thức có thể tham khảo ở trang web này :
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
***Nếu sử dụng các phép nối chuỗi, ta có thể áp dụng bài toán cập nhật dữ liệu mà không cần dùng vòng lặp !
ví dụ như bài test Ado của 1 bạn đã hỏi trên GPE ( trong file đính kèm )!
Nếu dùng vòng lặp thì em viết như sau :
[GPECODE=vb]
Sub Update_Data_ADO()
    Dim lsSQL As String, cnn As Object, lrs As Object
    Dim Tmparr(), Item, iR As Long, Val1, val2
        Set cnn = CreateObject("ADODB.Connection")
        Set lrs = CreateObject("ADODB.Recordset")
        With cnn
            .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                            "Data Source=" & ThisWorkbook.Path & "\DATA.xls" & _
                            ";Extended Properties=""Excel 8.0;HDR=Yes;"";"
            .Open
        End With
        Tmparr = Range("A2", [A65536].End(3)).Value
        iR = 1
        For Each Item In Tmparr
            iR = iR + 1
            If Len(Item) Then
                Val1 = CDbl(Range("C" & iR & "")): val2 = CStr(Trim(Range("D" & iR & "")))
                Debug.Print Val1; val2
                lsSQL = "UPDATE [DATA$] " & _
                        "SET [Thanhtoan]= " & Val1 & ", [Phuong Thuc] = '" & val2 & "'" & _
                        "WHERE [Bill] Like '" & Item & "'"
                lrs.Open lsSQL, cnn, 3, 1
            End If
        Next
Set lrs = Nothing
cnn.Close: Set cnn = Nothing
End Sub
[/GPECODE]
Còn nếu dùng Inner Joint thì em viết như sau :
[GPECODE=vb]
Sub Update_HLMT()
On Error GoTo Handle
Set Cn = CreateObject("ADODB.Connection")
Dim mySQL As String, strFile As Variant
strFile = Application.GetOpenFilename()
    If strFile <> False Then
             With Cn
                   mySQL = "UPDATE [Data$A2:F11] a " _
                        & "INNER JOIN " _
                        & "[Excel 8.0;HDR=No;IMEX=2;DATABASE=" _
                        & ThisWorkbook.FullName & "].[FORM$A2:E3] b  " _
                        & "ON a.F1=b.F1 " _
                        & "SET a.F4=b.F3,a.F5=b.F4"
                  .Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                            "Data Source=" & strFile & _
                            ";Extended Properties=""Excel 8.0;HDR=No;"";"
                  .Execute mySQL
                  .Close
            End With
    End If
Set Cn = Nothing
Exit Sub
Handle:
MsgBox Err.Description
End Sub
[/GPECODE]