phiphi2022
Thành viên mới

- Tham gia
- 3/5/22
- Bài viết
- 23
- Được thích
- 4
Chào các anh chị !
Em có lấy 1 bài code trên đây để áp dụng vào công việc. Nhưng do tính chất công việc đặc thù nên em cần chỉnh lại điều kiện câu SQL là địa chỉ 1 ô nằm ngoài trang tính excel (để tự thay đổi hàng ngày khi truy xuất dữ liệu)
Cụ thể em muốn đổi điều kiện WHERE trong câu cũ là :
Const sql1 = "SELECT f1,f2,f3,f4,val(f5),f6,f7,f8,f9,f10,f11,f12,val(f13) FROM [OK$A2:M5000] WHERE f7 = '231112A' "
thay vị trí WHERE f7 = '231112A' thành WHERE f7 = 1 ô địa chỉ ngoài trang tính excel ( ô B1 ở sheet1 )
phần này em không biết làm thế nào, nên nhờ các anh chị giúp ạ.
Đây là code trong thủ tục lấy dữ liệu ạ.
Sub GetOK()
Dim cn As Object, rs1 As Object, list_path As Variant, ex_path As Variant
Dim lR As Long
Set cn = CreateObject("ADODB.Connection")
Set rs1 = CreateObject("ADODB.Recordset")
Application.DisplayAlerts = False
Call CopyF
Const sql1 = "SELECT f1,f2,f3,f4,val(f5),f6,f7,f8,f9,f10,f11,f12,val(f13) FROM [OK$A2:M5000] WHERE f7 = '231112A' "
list_path = SelectExcelFiles("D:\15.File ChotDon", True)
If IsArray(list_path) = False Then Exit Sub
Sheet1.Range("A3:M65000").ClearContents
For Each ex_path In list_path
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ex_path & _
";Extended Properties=""Excel 12.0;HDR=No;"""
With Sheet1
lR = .Range("A" & .Rows.Count).End(xlUp).Row + 1
Set rs1 = cn.Execute(sql1)
If Not rs1.EOF Then .Range("A" & lR).CopyFromRecordset rs1
End With
rs1.Close
cn.Close
Next ex_path
Set cn = Nothing: Set rs1 = Nothing
Set list_path = Nothing
Application.DisplayAlerts = True
End Sub
Em có lấy 1 bài code trên đây để áp dụng vào công việc. Nhưng do tính chất công việc đặc thù nên em cần chỉnh lại điều kiện câu SQL là địa chỉ 1 ô nằm ngoài trang tính excel (để tự thay đổi hàng ngày khi truy xuất dữ liệu)
Cụ thể em muốn đổi điều kiện WHERE trong câu cũ là :
Const sql1 = "SELECT f1,f2,f3,f4,val(f5),f6,f7,f8,f9,f10,f11,f12,val(f13) FROM [OK$A2:M5000] WHERE f7 = '231112A' "
thay vị trí WHERE f7 = '231112A' thành WHERE f7 = 1 ô địa chỉ ngoài trang tính excel ( ô B1 ở sheet1 )
phần này em không biết làm thế nào, nên nhờ các anh chị giúp ạ.
Đây là code trong thủ tục lấy dữ liệu ạ.
Sub GetOK()
Dim cn As Object, rs1 As Object, list_path As Variant, ex_path As Variant
Dim lR As Long
Set cn = CreateObject("ADODB.Connection")
Set rs1 = CreateObject("ADODB.Recordset")
Application.DisplayAlerts = False
Call CopyF
Const sql1 = "SELECT f1,f2,f3,f4,val(f5),f6,f7,f8,f9,f10,f11,f12,val(f13) FROM [OK$A2:M5000] WHERE f7 = '231112A' "
list_path = SelectExcelFiles("D:\15.File ChotDon", True)
If IsArray(list_path) = False Then Exit Sub
Sheet1.Range("A3:M65000").ClearContents
For Each ex_path In list_path
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ex_path & _
";Extended Properties=""Excel 12.0;HDR=No;"""
With Sheet1
lR = .Range("A" & .Rows.Count).End(xlUp).Row + 1
Set rs1 = cn.Execute(sql1)
If Not rs1.EOF Then .Range("A" & lR).CopyFromRecordset rs1
End With
rs1.Close
cn.Close
Next ex_path
Set cn = Nothing: Set rs1 = Nothing
Set list_path = Nothing
Application.DisplayAlerts = True
End Sub