Theo yêu cầu của bạn tôi thấy dùng Power Query đỡ mất công code và nhanh, gọn
..
(Thay vì phải dùng ADBODB kết nối, kiểm tra có thay đổi không, copy dữ liệu ghi đè...)
Đối với dạng tự động đồng bộ dữ liệu này thì có dùng cơ sở dữ liệu nào (Access, SQL Server...) đều
phải có cái bước Refresh/ Requery dữ liệu thì nó mới cập nhật chứ mở file lên rồi để đó thì nó không tự động cập nhật dữ liệu khi có thay đổi dữ liệu nguồn đâu.
Tôi có làm file mẫu test thử đính kèm bên dưới. Cách thức xử lý là ở FileDich, định kỳ (chạy timer) Refresh dữ liệu từ kết nối của Power Query (PQ).
- Thực ra trong PQ có sẳn thiết lập định kỳ làm mới (đồng bộ) dữ liệu nhưng tôi không dùng mà dùng code VBA là để thêm tính năng "Dừng việc đồng bộ" theo ý muốn chứ để nó chạy hoài đôi khi cũng phiền lúc làm việc.
- Code VBA chỉ cần Refesh cái PQ, không cần code kiết dùng thư viện ADODB.
- Từ cái Sheet dữ liệu của PQ đó bạn có thể Vlookup gì đó cho bảng dữ liệu của bạn.
- Một lưu ý trong việc
khai báo đường dẫn qua mạng LAN là tôi dùng cái tên PC luôn chứ không dùng địa chỉ IP. Vì nếu Cty cấp phát IP động thì khi khởi động lại máy nó lại nhảy IP khác --> kết nối không còn đúng nữa.
Code thì chỉ đơn giản mấy dòng như hình:
View attachment 297503