ongke0711 > 03-11-17, 11:30 AM
(02-11-17, 09:54 PM)DooHoaangPhuuc Đã viết: Nhân đây xin hỏi Các Bác, Các Chú hướng dẫn giúp về dò tìm dòng dữ liệu thay đổi (cũng giống của Chú LeDangVan)
Cháu có 2 Bảng Table A và Table B có cấu trúc như nhau trong đó :
+ Bảng Table B là bảng dữ liệu tổng hợp.
+ Bảng A là bảng dữ liệu tạm (dũ liệu thay đổi hàng ngày).
1. Để so sánh những dòng record nào trong Bảng Table A (bảng tạm) thay đổi so với những dòng record tương ứng đó trong bảng tổng hợp Table B . Như vậy phải dùng code như thế nào.
2. Nếu có sự thay đổi những dòng record trong 2 bảng , liệt kê sự thay đổi những dòng record trong bảng Table A vào một bảng Table C khác (Bảng Table C này truy xuất record thay đổi từ Table A nhằm xem xét sự khác biệt xảy ra hàng ngày, tựa như Append Query có điều kiện từ Table A qua Table C). Giải pháp xây dựng trên cơ sở như thế nào.
Cháu xin cảm ơn sự hướng dẫn của Các Bác, Các Chú.
Cháu DooHoaangPhuuc
ledangvan > 03-11-17, 05:55 PM
DooHoaangPhuuc > 04-11-17, 03:20 PM
(03-11-17, 11:30 AM)ongke0711 Đã viết:(02-11-17, 09:54 PM)DooHoaangPhuuc Đã viết: Nhân đây xin hỏi Các Bác, Các Chú hướng dẫn giúp về dò tìm dòng dữ liệu thay đổi (cũng giống của Chú LeDangVan)
Cháu có 2 Bảng Table A và Table B có cấu trúc như nhau trong đó :
+ Bảng Table B là bảng dữ liệu tổng hợp.
+ Bảng A là bảng dữ liệu tạm (dũ liệu thay đổi hàng ngày).
1. Để so sánh những dòng record nào trong Bảng Table A (bảng tạm) thay đổi so với những dòng record tương ứng đó trong bảng tổng hợp Table B . Như vậy phải dùng code như thế nào.
2. Nếu có sự thay đổi những dòng record trong 2 bảng , liệt kê sự thay đổi những dòng record trong bảng Table A vào một bảng Table C khác (Bảng Table C này truy xuất record thay đổi từ Table A nhằm xem xét sự khác biệt xảy ra hàng ngày, tựa như Append Query có điều kiện từ Table A qua Table C). Giải pháp xây dựng trên cơ sở như thế nào.
Cháu xin cảm ơn sự hướng dẫn của Các Bác, Các Chú.
Cháu DooHoaangPhuuc
Bạn tham khảo trước bài này xem có đáp ứng yêu cầu chưa.
Link: http://thuthuataccess.com/forum/post-321...l#pid32146
ongke0711 > 04-11-17, 05:53 PM
(04-11-17, 03:20 PM)DooHoaangPhuuc Đã viết: ...
Ý cháu ở đây là tạo chương trình so sánh (Sosanh.accdb) sự thay đổi trên các dòng record của 2 bảng (TableB: tổng hợp, TableA : cập nhật hàng ngày ; các bảng này có cấu trúc như nhau)
Như vậy trong chương trình ban đầu chỉ có TableB lưu dữ liệu tổng hợp chung.
TableA dữ liệu thay đổi hàng ngày từ cơ sở dữ liệu khác (ví dụ từ capnhat.accdb), được đưa vào Sosanh.accdb thông qua Append Query .
Sau khi append, sẽ so sánh sự thay đổi dữ liệu giữa Bảng TableB và TableA,
Nếu có sự thay đổi từ các Field của bảng TableA (theo khóa chính chung giữa Tbl.B & Tbl.A), thì sẽ dán đè dòng dữ liệu thay đổi này vào Bảng TableB. Và chỉ riêng các dòng record thay đổi từ Bảng TableA sẽ được Append vào một TableC khác nữa nhằm để kiểm tra dữ liệu thay đổi hàng ngày.
+ Như vậy nguồn dữ liệu mới luôn được cập nhật vào cơ sở dữ liệu.
+ Cũng như diễn biến dữ liệu thay đổi hàng ngày cũng được theo dõi một cách chính xác.
Trên ý tưởng lý thuyết như đã nêu, nhưng cháu cũng chưa biết viết code hay hàm như thế nào.
Nếu có thể, Các Chú, Các Bác hướng dẫn giúp cháu giải pháp.
Cháu xin cảm ơn rất nhiều.
DooHoaangPhuuc > 04-11-17, 07:38 PM
ongke0711 > 05-11-17, 06:09 PM
(04-11-17, 07:38 PM)DooHoaangPhuuc Đã viết: + Do đây là các nguồn dữ liệu trên các ứng dụng khác nhau , nguồn csdl thay đổi hàng ngày (trong chương trình hoạt động độc lập khác) , truy xuất dữ liệu ra thành bảng capnhat.xlsx (Tbl.A) và chia sẻ chung trên ổ hệ thống mạng.
+ CSDL so sánh tổng hợp (Sosanh.accdb) cũng lấy nguồn từ Table khác (Tbl.B), nguồn tổng hợp này chưa qua xử lý hàng ngày
Dựa vào nguồn cập nhật để tổng hợp cập nhật lại dữ liệu và phân tích số lượng các record thay đổi hàng ngày, sau đó qua các bước xử lý dữ liệu tiếp theo.
SELECT TableB.IDKHACHHANG,"TINH" AS FieldThayDoi, TableB.Tinh AS TableBGiaTri,TableA_DailyUpdate.Tinh AS TableAGiaTri
FROM TableA_DailyUpdate INNER JOIN TableB ON TableA_DailyUpdate.IDKHACHHANG = TableB.IDKHACHHANG
WHERE (((TableB.TINH)<>[TableA_DailyUpdate].[TINH]));
UNION ALL
SELECT TableB.IDKHACHHANG,"TENKHACHHANG" AS FieldThayDoi, TableB.TENKHACHHANG AS TableBGiaTri,TableA_DailyUpdate.TENKHACHHANG AS TableAGiaTri
FROM TableA_DailyUpdate INNER JOIN TableB ON TableA_DailyUpdate.IDKHACHHANG = TableB.IDKHACHHANG
WHERE (((TableB.TENKHACHHANG)<>[TableA_DailyUpdate].[TENKHACHHANG]));