Lỗi Khi lấy dữ liệu bằng ADO.

Liên hệ QC

Thanhlam2425

Thành viên hoạt động
Tham gia
23/11/18
Bài viết
113
Được thích
12
Mọi ngời cho em hỏi lỗi này là bị Như thế nào ạ.
Mã:
Sub capnhaphanghoa()
    Dim cn As Object
   Dim rst As Object, sql As String
    Dim Pro As String, lr As Long, arr3(), ten As String, i As Long, dk As String, k As Integer
   Dim Ext As String
   Dim Name As String
   Dim s1 As String, s2 As String
   s1 = "NGHI" & ChrW(7878) & "P V" & ChrW(7908)
   s2 = "xu" & ChrW(7845) & "t " & ChrW(273) & "i" & ChrW(7873) & "u chuy" & ChrW(7875) & "n"
  With Sheets("DT-DC")
       lr = .Range("a" & Rows.Count).End(xlUp).Row
       If lr > 7 Then .Range("A8:R" & lr).ClearContents
  End With
   arr3 = Array("210", "230", "250", "280", "289", "290", "293", "275")
     Set cn = CreateObject("ADODB.connection")
     Set rst = CreateObject("ADODB.recordset")
     For k = 0 To UBound(arr3)
      With Sheets("DT-DC")
       lr = .Range("a" & Rows.Count).End(xlUp).Row + 1
      End With
     Name = "C:\BUILDSTOREPROJEC\ACCOUNT\BAR LIST\" & arr3(k) & ".xlsx"
     Pro = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
     Ext = ";Extended Properties=""Excel 12.0;HDR=No;"";"
     cn.Open (Pro & Name & Ext)
     sql = "SELECT *from [DATA$A7:R100000] WHERE F5='a'"                  '" & "'" & s2 & "'"
    rst.Open sql, cn, 3, 1
    Sheets("DT-DC").Range("A" & lr).CopyFromRecordset rst
    rst.Close
    cn.Close
    Next k
End Sub
217601
217602
 
Upvote 0
ADO nó ngán nhất mấy dữ liệu nguồn không chuẩn (trường số, chuỗi, định dạng ... lẫn lộn), bạn gửi file lên thử xem.
Vâng anh xem hộ em.
Bài đã được tự động gộp:

ADO nó ngán nhất mấy dữ liệu nguồn không chuẩn (trường số, chuỗi, định dạng ... lẫn lộn), bạn gửi file lên thử xem.
Cái này lỗi khi em thêm điều kiện where vào mới lỗi.Mà có máy thì chạy được có máy lỗi anh à.
 

File đính kèm

  • B210.xlsx
    10.4 KB · Đọc: 8
  • Book1.xlsm
    1.4 MB · Đọc: 8
Lần chỉnh sửa cuối:
Upvote 0
Vâng anh xem hộ em.
Bài đã được tự động gộp:


Cái này lỗi khi em thêm điều kiện where vào mới lỗi.Mà có máy thì chạy được có máy lỗi anh à.
Bạn kiểm tra lại tên file trùng với các phần tử trong mảng này chưa: Array("210", "230", "250", "280", "289", "290", "293", "275")
 
Upvote 0
LUÔN LUÔN đặt cái break ở sau câu dựng lệnh sql ( sql = ... ). Hiển thị xem nó ra cái gì rồi hỏi tiếp.
 
Upvote 0
Có 3 lỗi sai trong code của bạn:
1/ Ở dòng sql = "SELECT *from [DATA$A7:R50000] WHERE F5='a'"
-> Đúng là: sql = "SELECT * from [DATA$A7:R50000] WHERE F5='a'"
2/ Tên file bạn gửi lên là B210, nhưng trong array là 210?
3/ Ở dòng Ext = ";Extended Properties=""Excel 12.0;HDR=No;"";"
-> Đúng là: Ext = ";Extended Properties=""Excel 12.0;HDR=No;"""
Bài đã được tự động gộp:

Có 3 lỗi sai trong code của bạn:
1/ Ở dòng sql = "SELECT *from [DATA$A7:R50000] WHERE F5='a'"
-> Đúng là: sql = "SELECT * from [DATA$A7:R50000] WHERE F5='a'"
2/ Tên file bạn gửi lên là B210, nhưng trong array là 210?
3/ Ở dòng Ext = ";Extended Properties=""Excel 12.0;HDR=No;"";"
-> Đúng là: Ext = ";Extended Properties=""Excel 12.0;HDR=No;"""
P/s: sorry bạn, cái thứ 3 không sai, chỉ dư thôi.
 
Upvote 0
Chủ thớt có thể tham khảo thêm phương án ở bài này:

 
Upvote 0
Chủ thớt có thể tham khảo thêm phương án ở bài này:

tham khảo cái này lại phải cài thêm python và 1 mớ thư viện theo nó, thật phức tạp (chưa kể phải học python)
trong khi ADO thì không cần cài thêm gì nhiều ngoài VBA
 
Upvote 0
tham khảo cái này lại phải cài thêm python và 1 mớ thư viện theo nó, thật phức tạp (chưa kể phải học python)
trong khi ADO thì không cần cài thêm gì nhiều ngoài VBA
Mạnh cũng đang hóng cái Python này nhiều lắm .... nhưng trên GPE chưa thấy ai viết 1 File thư viên *.DLL úp lên cho xài thử mấy hàm cho Excel
cái thư viện đó phải copy đi bất cứ máy nào cũng xài được ấy ( ko phải đăng ký với Windows và máy ko cài Python )
Còn trên Delphi mạnh thấy nó làm ok đó mà biết rồi thấy có phần đơn giản ( Trừ khi viết code khó vượt ngoài khả năng của Mạnh )
......................
Mong Hóng coi ai viết cái thư viện Code *.DLL Python úp lên cho Mạnh quậy chút !!!!!!!!!!!????????????
 
Lần chỉnh sửa cuối:
Upvote 0
Mạnh cũng đang hóng cái Python này nhiều lắm .... nhưng trên GPE chưa thấy ai viết 1 File thư viên *.DLL úp lên cho xài thử mấy hàm cho Excel
cái thư viện đó phải copy đi bất cứ máy nào cũng xài được ấy ( ko phải đăng ký với Windows và máy ko cài Python )
Còn trên Delphi mạnh thấy nó làm ok đó mà biết rồi thấy có phần đơn giản ( Trừ khi viết code khó vượt ngoài khả năng của Mạnh )
......................
Mong Hóng coi ai viết cái thư viện Code *.DLL Python úp lên cho Mạnh quậy chút !!!!!!!!!!!????????????
Xem bài #3 ở link này, trong đó ngừoi ta có chỉ dẫn.
Sau đó, xem bài #6, cũng ở link ấy. Trong đó tôi có nói: cứ yên tâm lo học đi, mọi cái cần quậy sẽ tự động đến.
 
Upvote 0
Mạnh cũng đang hóng cái Python này nhiều lắm .... nhưng trên GPE chưa thấy ai viết 1 File thư viên *.DLL úp lên cho xài thử mấy hàm cho Excel
cái thư viện đó phải copy đi bất cứ máy nào cũng xài được ấy ( ko phải đăng ký với Windows và máy ko cài Python )
Còn trên Delphi mạnh thấy nó làm ok đó mà biết rồi thấy có phần đơn giản ( Trừ khi viết code khó vượt ngoài khả năng của Mạnh )
......................
Mong Hóng coi ai viết cái thư viện Code *.DLL Python úp lên cho Mạnh quậy chút !!!!!!!!!!!????????????
DLL thì thiên về Windows, mà python muốn thỏa mãn mọi Hệ điều hành nên support không tốt. Nhưng dịch ra file thực thi (exe) thì được, mang đi được.
 
Upvote 0
DLL thì thiên về Windows, mà python muốn thỏa mãn mọi Hệ điều hành nên support không tốt. Nhưng dịch ra file thực thi (exe) thì được, mang đi được.
Chả có gì không tốt cả. Thực tế thì tôi nghĩ rằng có khả năng khi học Python xong sẽ không còn muốn nghĩ gì về dll cả.
Có cả một chân trời mới để vọc. Tội gì phải quay về cái góc nhỏ dll của Windows.
(nếu học đến nơi đến chốn thì muốn chọt vào hệ điều hành hoặc các phần mềm hổ trợ, người ta dùng code C nhúng)
 
Upvote 0
Web KT
Back
Top Bottom