HỎI VỀ UPDATE

Liên hệ QC

vubinh099

Thành viên mới
Tham gia
30/10/15
Bài viết
43
Được thích
4
Xin chào toàn thể ACE GPE,
Em có 2 file, 1 file Chuongtrinh.xlsb và BG_DATA.xlsb.
Em muốn update (sửa chứng từ) vào file BG_DATA. Dữ liệu muốn sửa là Range ("B5:N") - sheet "Sua" - file "Chuongtrinh", điều kiện là cột "SỐ CHỨNG TỪ" Range ("B5:N") = Cột "SỐ CHỨNG TỪ" file DATA.
Các bác giúp em với, em nghiên cứu mãi không ra. :(

Em chỉ có cách là viết lệnh UPDATE cho từng dòng khác rỗng, rồi chạy từng lệnh đó. Cách này cùi bắp quá nên bí quá mới dùng.

Em cám ơn nhiều ạ!
 

File đính kèm

  • update.rar
    89.1 KB · Đọc: 35
Xin chào toàn thể ACE GPE,
Em có 2 file, 1 file Chuongtrinh.xlsb và BG_DATA.xlsb.
Em muốn update (sửa chứng từ) vào file BG_DATA. Dữ liệu muốn sửa là Range ("B5:N") - sheet "Sua" - file "Chuongtrinh", điều kiện là cột "SỐ CHỨNG TỪ" Range ("B5:N") = Cột "SỐ CHỨNG TỪ" file DATA.
Các bác giúp em với, em nghiên cứu mãi không ra. :(

Em chỉ có cách là viết lệnh UPDATE cho từng dòng khác rỗng, rồi chạy từng lệnh đó. Cách này cùi bắp quá nên bí quá mới dùng.

Em cám ơn nhiều ạ!
Dùng ADO để Update qua nhé bạn.
 
Dùng ADO để Update qua nhé bạn.
Dạ, em cũng đang dùng ADO mà không biết viết như thế nào. Anh giúp em hoàn thiện đoạn code này với. Cám ơn anh nhiều ạ!
Mã:
Sub Sua_Dulieu()
Dim cnn As Object
    Set cnn = CreateObject("ADODB.Connection")
    With cnn
        .Open ("provider=Microsoft.ACE.OLEDB.12.0; data source=" & _
               ThisWorkbook.Path & "\BG_DATA.xlsb" & _
              ";extended properties=""Excel 12.0;hdr=no"";")
        .Execute ("UPDATE [DATA1$] SET ??? WHERE ???")
        .Close
    End With
    MsgBox "Done!"
End Sub
 
Dạ, em cũng đang dùng ADO mà không biết viết như thế nào. Anh giúp em hoàn thiện đoạn code này với. Cám ơn anh nhiều ạ!
Mã:
Sub Sua_Dulieu()
Dim cnn As Object
    Set cnn = CreateObject("ADODB.Connection")
    With cnn
        .Open ("provider=Microsoft.ACE.OLEDB.12.0; data source=" & _
               ThisWorkbook.Path & "\BG_DATA.xlsb" & _
              ";extended properties=""Excel 12.0;hdr=no"";")
        .Execute ("UPDATE [DATA1$] SET ??? WHERE ???")
        .Close
    End With
    MsgBox "Done!"
End Sub
Chạy code sau nhé:

Mã:
Sub Update()
    Dim cn As Object
    Dim i As Byte
    Dim strUpdate As String
    For i = 2 To 13
        strUpdate = strUpdate & " a.F" & i & "=B.F" & i & ","
    Next
    Set cn = CreateObject("ADODB.Connection")
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\BG_DATA.xlsb;Extended Properties=""Excel 12.0;HDR=No"""
    cn.Execute ("Update [DATA1$A2:M] a " & _
                 " inner join [EXCEL 12.0;IMEX=1;HDR=No;Database=" & ThisWorkbook.FullName & "].[Sua$B5:N] B " & _
                        " on a.[F1]=b.[F1] " & _
                        " set " & Left(strUpdate, Len(strUpdate) - 1))
End Sub
 
Chạy code sau nhé:

Mã:
Sub Update()
    Dim cn As Object
    Dim i As Byte
    Dim strUpdate As String
    For i = 2 To 13
        strUpdate = strUpdate & " a.F" & i & "=B.F" & i & ","
    Next
    Set cn = CreateObject("ADODB.Connection")
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\BG_DATA.xlsb;Extended Properties=""Excel 12.0;HDR=No"""
    cn.Execute ("Update [DATA1$A2:M] a " & _
                 " inner join [EXCEL 12.0;IMEX=1;HDR=No;Database=" & ThisWorkbook.FullName & "].[Sua$B5:N] B " & _
                        " on a.[F1]=b.[F1] " & _
                        " set " & Left(strUpdate, Len(strUpdate) - 1))
End Sub
Tuyệt vời!
Cám ơn anh rất nhiều ạ.
 
Web KT
Back
Top Bottom