Xin chào thầy!
Thầy cho em hỏi trong trường hợp em không dùng định dạng table cho vùng data, tất cả dữliệu đểu ở dạng range thì khi dùng lệnh SELECT thì sẽ ghi như thế nào ạ. Em đang dùng lệnh như sau nhưng bị lỗi:
Sub truy_van_item()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim s1 As Worksheet
Set s1 = wb.Sheets("Sheet1")
Dim i As String
i = s1.Range("A1")
Dim cnn As Object, lrs As Object
Dim SQLQuery As String, sConnect As String
Set cnn = CreateObject("ADODB.Connection")
Set lrs = CreateObject("ADODB.Recordset")
Dim linksource As String
linksource = ThisWorkbook.Path & "\SYS-IM.xlsm"
sConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & linksource & "; Extended Properties = ""Excel 12.0 Macro; HDR=YES"";"
cnn.Open sConnect
'SQLQuery = "SELECT [New code] FROM [General$]"
SQLQuery = "select [column2] From [General$] Where [Column2] = i "
lrs.Open SQLQuery, cnn >>>>>>> Lỗi ngay chỗ này, nếu em dùng select là * thay cho chỗ [column2] và xóa phần where ở phía sau đi thì nó copy hết toàn bộ qua
s1.Range("A2").CopyFromRecordset lrs
lrs.Close
cnn.Close
bạn lấy dữ liệu từ file khác?
select [column2] From [General$] Where [Column2] = i " này bạn dubug xem có đúng ko?
Em vẫn bị vướng ngay chỗ đó thầy ơi
Bạn ghi đoạn text đó ra nhé nếu nó thế này là sai
Ví dụ I = "Gitiho"
select [column2] From [General$] Where [Column2] = i
Bạn cần nối chuỗi như sau
"select [column2] From [General$] Where [Column2] =" & "' " & Sheet1.Range("i1").Value & "'"
Lỗi của nó là:
Vẫn bị lỗi như vậy luôn thầy:
Bạn gửi file lên giúp gitiho nhé
Em gửi thầy link ggd:
https://drive.google.com/drive/folder...
Trong đó có 2 file:
- SYS-IM > Là file chứa dữ liệu
- trich xuat > là file sẽ trích dữ liệu từ SYS-IM
Cảm ơn thầy đã hỗ trợ
Lần sau bạn nên tạo ra nhiều thảo luận nhé
Sub truy_van_item()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim s1 As Worksheet
Set s1 = wb.Sheets("Sheet1")
' Dim i As String
' i = s1.Range("A1")
Dim cnn As Object, lrs As Object
Dim SQLQuery As String, sConnect As String
Set cnn = CreateObject("ADODB.Connection")
Set lrs = CreateObject("ADODB.Recordset")
Dim linksource As String
linksource = ThisWorkbook.Path & "\SYS-IM.xlsm"
sConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & linksource & "; Extended Properties = ""Excel 12.0 Macro; HDR=YES"";"
cnn.Open sConnect
SQLQuery = "SELECT * FROM [General$] where [F2] = " & "'" & Sheet1.Range("i1").Value & "'"
lrs.Open SQLQuery, cnn
Sheet1.Range("A2").CopyFromRecordset lrs
lrs.Close
cnn.Close
'*** free RAM
Set wb = Nothing
Set s1 = Nothing
i = Empty
Set cnn = Nothing
Set lrs = Nothing
linksource = ""
End Sub
Em chào thầy, Em thử đoạn code thầy vừa gửi, cũng vẫn bị đứng ngay chỗ:
lrs.Open SQLQuery, cnn