Dùng lệnh Union để nói tiếp 2 bảng

Liên hệ QC

HUYNHTIEN0202

Thành viên chính thức
Tham gia
22/8/14
Bài viết
87
Được thích
1
Chào các Anh
Em dùng lệnh Union để nối tiếp 2 bảng ,nhưng những dữ liệu trùng thì chỉ hiện 1 kết quả
Nhờ các anh hướng dẫn thêm.
Mã:
Private Sub CommandButton2_Click()
Dim v As String, Cnn As Object, lrs As Object
Application.ScreenUpdating = False
    Set Cnn = CreateObject("ADODB.Connection")
    v = Application.Version
    With Sheet2
     '.Range("F5:I5000").ClearContents
    Cnn.Open ("Provider=Microsoft." & IIf(v <> "8.0", "ACE.OLEDB.12.0", "Jet.OLEDB.4.0") & _
    ";Data Source=" & ThisWorkbook.FullName & ";Extended Properties=Excel " & IIf(v <> "8.0", "12.0", "8.0"))
'---------------------------------------------------------------------------------------------------------------
         Set lrs = Cnn.Execute("SELECT SOSANPHAM, MASOSANPHAM, TENSANPHAM,SOLUONG " & _
                      "FROM [01$] " & _
                      "WHERE SOSANPHAM LIKE ('" & .Range("G2") & "') " & _
                      "Union " & _
                      "SELECT SOSANPHAM, MASOSANPHAM, TENSANPHAM,SOLUONG " & _
                      "FROM [02$] " & _
                      "WHERE SOSANPHAM LIKE ('" & .Range("G2") & "')")
'---------------------------------------------------------------------------------------------------------------
    .Range("F5").CopyFromRecordset lrs
    End With
'---------------------------------------------------------------------------------------------------------------
lrs.Close: Set lrs = Nothing
Cnn.Close: Set Cnn = Nothing
Application.ScreenUpdating = True
 

File đính kèm

  • Book2.xlsm
    27.6 KB · Đọc: 17
Chào các Anh
Em dùng lệnh Union để nối tiếp 2 bảng ,nhưng những dữ liệu trùng thì chỉ hiện 1 kết quả
Nhờ các anh hướng dẫn thêm.
Mã:
Private Sub CommandButton2_Click()
Dim v As String, Cnn As Object, lrs As Object
Application.ScreenUpdating = False
    Set Cnn = CreateObject("ADODB.Connection")
    v = Application.Version
    With Sheet2
     '.Range("F5:I5000").ClearContents
    Cnn.Open ("Provider=Microsoft." & IIf(v <> "8.0", "ACE.OLEDB.12.0", "Jet.OLEDB.4.0") & _
    ";Data Source=" & ThisWorkbook.FullName & ";Extended Properties=Excel " & IIf(v <> "8.0", "12.0", "8.0"))
'---------------------------------------------------------------------------------------------------------------
         Set lrs = Cnn.Execute("SELECT SOSANPHAM, MASOSANPHAM, TENSANPHAM,SOLUONG " & _
                      "FROM [01$] " & _
                      "WHERE SOSANPHAM LIKE ('" & .Range("G2") & "') " & _
                      "Union " & _
                      "SELECT SOSANPHAM, MASOSANPHAM, TENSANPHAM,SOLUONG " & _
                      "FROM [02$] " & _
                      "WHERE SOSANPHAM LIKE ('" & .Range("G2") & "')")
'---------------------------------------------------------------------------------------------------------------
    .Range("F5").CopyFromRecordset lrs
    End With
'---------------------------------------------------------------------------------------------------------------
lrs.Close: Set lrs = Nothing
Cnn.Close: Set Cnn = Nothing
Application.ScreenUpdating = True
Union nó sẽ xóa cái nào trùng, bạn phải dùng union all
 
Web KT
Back
Top Bottom