ADODB truy vấn đồng thời nhiều file MS Access cùng lúc

Liên hệ QC

evolt

Thành viên mới
Tham gia
14/6/13
Bài viết
27
Được thích
4
Chào mọi người, trước đây mình có thực hiện kết nối ADODB để truy vấn đồng thời nhiều file access cùng lúc, tuy nhiên 3 ngày nay thì không thể thực hiện được nữa, không rõ có phải do ADODB đã có cập nhật gì không ạ?

PHP:
     Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
  
    With cn
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\A.accdb;Persist Security Info=False;"
        .Open
    end with
    Set rs = cn.Execute("Select * from [D:\B.accdb].MDM")
    ...

Câu truy vấn SQL này trước đây mình vẫn truy vấn được tốt nhưng giờ thì bị báo lỗi "3704: Operation is not allowed when the object is closed."
Mọi người hỗ trợ giúp mình với
 
Ủa sao bạn mở file A mà lấy dữ liệu là từ file B?
 
Upvote 0
file A trên 2Gb, nên phải tách ra làm nhiều file bạn
 
Upvote 0
Trước đây e vẫn chạy được bình thường ạ. SQL dạng "select * from [D:\A.accdb].sales union select * from [D:\B.accdb].sales" để nối 2 file lại với nhau. (tổng dung lượng > 2Gb nên bắt buộc phải tách file)

e mới test lại thì cách tạo kết nối tới file A, truy vấn file B vẫn chạy được ở office 2016/2019, máy e dùng office 365 beta insider nó mới update cái gì đó nên không SQL kiểu này được nữa.
 
Upvote 0
Trước đây e vẫn chạy được bình thường ạ. SQL dạng "select * from [D:\A.accdb].sales union select * from [D:\B.accdb].sales" để nối 2 file lại với nhau. (tổng dung lượng > 2Gb nên bắt buộc phải tách file)

e mới test lại thì cách tạo kết nối tới file A, truy vấn file B vẫn chạy được ở office 2016/2019, máy e dùng office 365 beta insider nó mới update cái gì đó nên không SQL kiểu này được nữa.
Thử chuyển qua xài File *.db đi xem sao ... lưu tối đa = 2048 G ====> tha hồ mà lưu ...
Mới lóng ngóng khó chút ... vượt qua cái ngưỡng đó là ok ... mà tốc độ truy xuất hình như nó nhanh hơn Access đấy
Tôi đang tập làm quen nó và sau khi rành mọi cái chuyển CSDL từ Access sang DB

hướng dự tính như sau
1/ cái nào ko liên quan với nhau chỉ lưu và truy xuất thì lưu vào DB
2/ cái nào cần + -*/ thì cho vào Access ... kết hợp hoài hòa nó lại là ok đấy
 
Upvote 0
dạ e cám ơn gợi ý của a, tại đang cuối tháng phải chuẩn bị số chốt tính thưởng nên hơi gấp ạ. Phần SQLite e cũng mới tìm hiểu, đang mò được phần create/read rồi ạ, còn đang vướng chỗ import xlsb vào .db bằng câu SQL này mà chưa được:

"INSERT INTO Sales values( select * from [Excel 12.0;HDR=Yes;IMEX=0;Readonly=True;DATABASE=D:\X.xlsb].[dataRange] );"

Mà e thấy dùng SQLite cũng phải qua đối tượng ADO của MS, em đang thử SQL vào file excel
"SELECT * FROM [Excel 12.0;HDR=Yes;IMEX=0;Readonly=False;DATABASE=D:\X.xlsx].[RePaid];" thì cũng không được luôn nên khả năng là MS nó update cái gì đó ở ADO bản O365 rồi ạ.
 
Upvote 0
Thử chuyển qua xài File *.db đi xem sao ... lưu tối đa = 2048 G ====> tha hồ mà lưu ...
Mới lóng ngóng khó chút ... vượt qua cái ngưỡng đó là ok ... mà tốc độ truy xuất hình như nó nhanh hơn Access đấy
Tôi đang tập làm quen nó và sau khi rành mọi cái chuyển CSDL từ Access sang DB

hướng dự tính như sau
1/ cái nào ko liên quan với nhau chỉ lưu và truy xuất thì lưu vào DB
2/ cái nào cần + -*/ thì cho vào Access ... kết hợp hoài hòa nó lại là ok đấy
em đã so thử phần properties của recordset bản O365 với O2019 thì thấy có khác nhau 2 giá trị

Office 2019Office 365
Quick RestartTrueFalse
Jet OLEDB:Grbit Value0128

e không rõ ý nghĩa từng properties này, cũng không set giá trị cho các properties này được luôn.
 
Upvote 0
Web KT

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

Back
Top Bottom