Nguyễn Quang Huy
Nguyễn Quang Huy
Thảo luận 10 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 156 lượt xem

trong trường hợp em không dùng định ng table cho vùng data tất cả dữliệu

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

    


Thảo luận 10 câu trả lời
Lượt xem 156 lượt xem
Vỗ tay vỗ tay
Nguyễn Quang Huy 09:06 - Jun 14, 2022

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?

Vỗ tay vỗ tay
Nguyễn Quang Huy 09:06 - Jun 14, 2022

Em vẫn bị vướng ngay chỗ đó thầy ơi

Vỗ tay vỗ tay
Nguyễn Quang Huy 09:06 - Jun 14, 2022

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 & "'"

Vỗ tay vỗ tay
Nguyễn Quang Huy 09:06 - Jun 14, 2022

Lỗi của nó là:    

Vỗ tay vỗ tay
Nguyễn Quang Huy 10:06 - Jun 14, 2022

Vẫn bị lỗi như vậy luôn thầy:


Vỗ tay vỗ tay
Nguyễn Quang Huy 11:06 - Jun 14, 2022

Bạn gửi file lên giúp gitiho nhé

Https://gitiho.com/blog/huong-dan-upl... 

Vỗ tay vỗ tay
Nguyễn Quang Huy 13:06 - Jun 14, 2022

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ợ

Vỗ tay vỗ tay
Nguyễn Quang Huy 14:06 - Jun 14, 2022

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

code của bạn đây nhé.
Vỗ tay vỗ tay
Nguyễn Quang Huy 08:06 - Jun 15, 2022

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

Vỗ tay vỗ tay
Nguyễn Quang Huy 14:06 - Jun 15, 2022
Sáng mai bạn cho mình xin ultraiview nhé.
Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông