[Hỏi] Kết nối Excel vs Access bằng ADODB - Truy vấn bị lỗi khi tên sheet trong file Excel không được đặt tên

Liên hệ QC

subasatran

Thành viên hoạt động
Tham gia
17/3/13
Bài viết
114
Được thích
6
Xin chào A/C/E và mọi người.
Em có sử dụng kết nối ADODB kết nối Excel và Access để import data từ excel vào access để xử lý dữ liệu(code import em lấy từ internet).
Tuy nhiên, khi chạy code import thì bị gặp lỗi như sau :
Nếu tên Sheet của file Excel được đặt tên thì code chạy ổn(ví dụ như tên sheet là Data).
Mã:
    Set rs = CreateObject("ADODB.Recordset")
    FilePath = CurrentProject.Path & "\" & FileName & ".xlsx"
    SQL = "select * from [Data$A1:AA]"
    Strconnect = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath _
                & ";Extended Properties=""Excel 12.0 Xml;HDR=Yes;"";")
    rs.Open SQL, Strconnect, 3, 1
Trong trường hợp nếu tên Sheet trong file excel không được đặt tên(có nghĩa là để nguyên mặc định Sheet1).
Thì code import báo lỗi ở câu lệnh SQL.
Mã:
    Set rs = CreateObject("ADODB.Recordset")
    FilePath = CurrentProject.Path & "\" & FileName & ".xlsx"
    SQL = "select * from [Sheet1$A1:AA]"
    Strconnect = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath _
                & ";Extended Properties=""Excel 12.0 Xml;HDR=Yes;"";")
    rs.Open SQL, Strconnect, 3, 1
Vậy mọi người cho em hỏi là :
a. nguyên nhân báo lỗi là do đâu vậy ?
b. Làm sao để khi tên sheet của file excel để nguyên mặc dịnh là Sheet1 thì code vẫn chạy được ạ ?do các file excel này được exporrt từ hệ thống và rất nhiều file nên không thể mở từng file để đặt tên sheet được
Rất cám ơn A/C/E và mọi người giúp đỡ
 
Giải pháp
Tôi không muốn nhắc lại nhưng như thế này cũng là xúc phạm

1698293448649.png

Và như thế này là khiêu khích (gằn giọng lần 2)

1698293489908.png
Chưa biết ai nặng hơn ai.
Mình debug code làm sao để biết được mã lỗi anh nhỉ.
Khi bấm vào button thì nó không có hoạt động hoặc hiện tượng gì
- Trong màn hình VBE, chọn Debug - Compliled xem nó có báo gì không.
- Xem lại nút lệnh có gán code chưa. Nhiều khi copy qua lại nó bị mất.
- Có unzip file ra để chạy chưa.
 
Upvote 0
- Trong màn hình VBE, chọn Debug - Compliled xem nó có báo gì không.
- Xem lại nút lệnh có gán code chưa. Nhiều khi copy qua lại nó bị mất.
- Có unzip file ra để chạy chưa.
Em lấy file của anh unzip để chạy luôn.
Nút lệnh vẫn gán code của Sub.
Khi em debug thì nó báo lỗi này(báo ngày chỗ Date).
Không biết bị thiếu thư viên gì ?
Mục đích em sử dụng Date này để input thời gian để xử lý dữ liệu.
1699767436570.png
 

File đính kèm

  • 1699767427315.png
    1699767427315.png
    92.4 KB · Đọc: 1
Lần chỉnh sửa cuối:
Upvote 0
Em lấy file của anh unzip để chạy luôn.
Nút lệnh vẫn gán code của Sub.
Khi em debug thì nó báo lỗi này(báo ngày chỗ Date).
Không biết bị thiếu thư viên gì ?
Mục đích em sử dụng Date này để input thời gian để xử lý dữ liệu.
View attachment 296650
Cái lỗi này đơn giản quá mà bạn. Nó báo không tìm thấy thư viện thì vô Tool - Reference xem dòng nào báo "Missing..." thì tìm thư viện tương tự. Lỗi cái hàm Date là do thư viện Microsoft Object xx library.
 
Upvote 0
Cái lỗi này đơn giản quá mà bạn. Nó báo không tìm thấy thư viện thì vô Tool - Reference xem dòng nào báo "Missing..." thì tìm thư viện tương tự. Lỗi cái hàm Date là do thư viện Microsoft Object xx library.
Sao bên máy em khi vào Tool/Reference nó không báo dòng "missing..." nhỉ.
Nó chỉ hiện ra như hình 1 bên dưới à.
Capture12.PNG
Sau một hồi click chọn một vài thư viện thì nó phát sinh thêm lỗi như bên dưới :)
Không biết cái DAO bị gì luôn
Capture11.PNG
 
Upvote 0
Sao bên máy em khi vào Tool/Reference nó không báo dòng "missing..." nhỉ.
Nó chỉ hiện ra như hình 1 bên dưới à.

Sau một hồi click chọn một vài thư viện thì nó phá sinh thêm lỗi như bên dưới :)
Không biết cái DAO bị gì luôn
Bạn kiếm tiếp cái thư viện DAO chọn thêm vào.
 
Upvote 0
Bạn kiếm tiếp cái thư viện DAO chọn thêm vào.
Khi chọn vào thư viện Microsolf DAO 3.6 Object Library và bấm OK thì bị báo lỗi như thế này
Capture_DAO 3.6.PNGKhi chọn vào thư viện Microsolf ADO Ext. 6.0 for DLL and Security và bấm OK thì bị báo lỗi như thế này
CaptureADO.PNG

Anh có thể cho em xin các thư viện của access bên anh đang được tick mà nó chạy được code này không ?
Thay đổi có vài dòng code mà nó phát sinh phức tạp hơn nhiều ghê.
 
Upvote 0
Khi chọn vào thư viện Microsolf DAO 3.6 Object Library và bấm OK thì bị báo lỗi như thế này
Khi chọn vào thư viện Microsolf ADO Ext. 6.0 for DLL and Security và bấm OK thì bị báo lỗi như thế này


Anh có thể cho em xin các thư viện của access bên anh đang được tick mà nó chạy được code này không ?
Thay đổi có vài dòng code mà nó phát sinh phức tạp hơn nhiều ghê.

Bạn xem hình. Tôi chỉ dùng 2 cái thư viện gốc.

Screen Shot 2023-11-13 at 13.02.22.png
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom