-
Demo - Cập nhật ứng dụng Front end Ms Access qua internet (Cloud drives)
ongke0711 > 02-03-21, 12:19 PM
Cập nhật ứng dụng Front end Ms Access qua internet (Cloud Google Drive, One Drive...)
-------------------------------------------------------------------------------------------------------------------------------------------
Ứng dụng viết trên MS Access tách ra thành 2 file Front end và Backend, file Front end sẽ copy cho nhiều người dùng để sử dụng, nhập liệu...Khi có hiệu chỉnh file Front end thì người quản trị ứng dụng sẽ phải copy lại từng file cho từng người dùng hoặc thông báo cho họ biết tự lấy copy về ghi đè file FE cũ.
Code trong thủ thuật này giúp cho mỗi người dùng tự cập nhật ứng dụng Front end của họ khi kiểm tra có phiên bản mới và tự cập nhật chính nó (FE).
Sơ đồ lại vụ tách ứng dụng Access (Split database) thành file BE và FE: dành cho những bạn chưa hình dung được tính năng nổi bật này của Ms Access.
Như trong hình thì file FE Access có thể kết nối với file dữ liệu BE Access qua mạng nội bộ (LAN) hoặc nếu muốn qua internet thì dữ liệu BE phải là SQL Server. File BE Access có thể kết nối được qua internet nếu dùng cái thủ thuật khai thác tính năng đồng bộ file của Google drive (hoặc One drive). Thủ thuật này anh tranthanhan1962 cũng đã có nhiều bài viết về nó.
Nói về việc cập nhật file FE:
- Nếu chỉ dùng trong mạng LAN thì việc cập nhật file cũng khá đơn giản. File FE mới sẽ lưu ở máy chủ trong hệ thống và chia sẻ full, sau đó dùng File System Object để copy file FE mới về máy con, tiến hành ghi đè là xong.
- Nếu file FE có kết nối tới BE qua internet (SQL Server, dùng thủ thuật Google drive) thì không thể dùng cách trên để lấy file FE mà phải download file thông qua Webserver hoặc các ứng dụng đám mây (Cloud) đang phổ biến hiện nay. Riêng đối với thủ thuật chia sẻ BE qua internet bằng công cụ Backup & Syn Google drive, RaidDrive ... thì cũng phải tốn thêm việc phải cài đặt các ứng dụng hỗ trợ này cho từng máy con, tính linh hoạt cũng không còn.
Từ nhưng yếu tố trên nên tôi chọn cách cập nhật FE qua internet thông qua cloud drive để áp dụng chung cho cả 2 trường hợp file FE được phân phối trong LAN hoặc qua Internet.
Ngoài việc chọn cách thức tải file cập nhật, một vấn đề quan trọng cần giải quyết là file FE cập nhật từ trên internet này sau khi tải về phải tự động tìm và kết nối lại toàn bộ các Linked Table mà file FE hiện tại đang kết nối. Đối với CSDL BE là SQL Server thì không cần làm tác vụ này.
Trong demo code lần này tôi viết cho trường hợp file BE là Access Database trong mạng LAN và file FE kết nối thông qua Linked table. Code này chỉ chỉnh sửa chút ít là áp dụng cho CSDL BE là SQL Server (FE dùng ADODB kết nối hoặc Linked Table với SQL SV thông qua ODBC - DNS less).
- Ứng dụng đã chạy tốt với cả 2 hệ 32 bit và 64 bit (Windows và Office).
- Code có bao gồm luôn thủ thuật:
+ "Tăng tốc kết nối với Linked table" trong bài viết của tôi lúc trước. Xem tại đây.
+ "Tự động kết nối lại với BE Database cho Linked Table. Xem tại đây.
*** Hướng dẫn sử dụng:
- File FE cập nhật lưu lên ổ đĩa đám mây và copy link download cùng số version về lưu vào tblVersion trong file BE. Các máy con sẽ kiểm tra thông tin này để biết có file mới hay không.
- Sửa tham số phiên bản trong module trước khi upload lên cloud.
- Thêm dòng mới trong tblVerson: số phiên bản, đường link file FE mới vừa upload lên cloud drive.
- Không xoá các Table: tblVersion, tblBackendDBs, tblLinkTables, tblUpdateHistory
- Pass các file BE: 123456
*** Giải thuật xử lý của demo:
- Quản trị ứng dụng sau khi có sửa chữa, cập nhật ứng dụng FE mới sẽ upload lên cloud drive nào đó như Google drive, One drive... và cập số version, đường link download file FE mới vào tblVersion (lưu trên Back end database ở máy chủ).
- Ở máy con, khi người dùng bấm nút cập nhật thì code sẽ kiểm tra đối chiếu Version hiện tại của ứng dụng với version trong tblVersion. Thông tin version của FE hiện tại lưu trong module modUpdateFE - mstrVersion. Nếu thấy phiên bản mới hơn thì sẽ tiến hành download file mới về folder "TEMP" của hệ thống. Tiến hành sao lưu thông tin đường dẫn tới file BE đối với FE hiện tại của người dùng vào file FE mới. Sau đó sẽ đóng ứng dụng FE hiện tại, xóa nó, tiến hành copy phiên bản mới vào folder mà FE hiện tại đang lưu, khởi động lại ứng dụng FE. Khi FE mới khởi động sẽ tiến hành kết nối lại với CSDL BE theo đường dẫn đã lưu.
Các bạn tham khảo cách thức làm và tuỳ biến theo ý muốn để cải tiến hơn.
---------------------------------------------------------------------------------------------
PS:
File chia sẻ full source code. Các bạn nào cảm thấy code có ích, ứng dụng được cho mình thì cứ thoải mái mà dùng. Nếu có lòng thì quyên góp chút ít cho diễn đàn để có thêm kinh phí hoạt động nhé.
(Nút "Quyên góp" góc trên bên phải.)
Link file: https://www.mediafire.com/file/sl3baxp1o...e.zip/file -
RE: Cập nhật ứng dụng Front end Ms Access qua internet (Cloud Google Drive, One Drive...)
bvchauthanh > 02-03-21, 12:34 PM
Rất hay! Có thể cho xin file accdb ko khóa ngâm cứu không thớt! tks!
email: tanhoangxn@gmail.com -
RE: Cập nhật ứng dụng Front end Ms Access qua internet (Cloud Google Drive, One Drive...)
dotrung > 02-03-21, 03:42 PM
Cái này hay nè, em cũng đang cần để triển khai online, cảm ơn anh ongke0711
Mong anh ra bảng demo cho anh em nghiên cứu nhé! -
RE: Demo - Cập nhật ứng dụng Front end Ms Access qua internet (Cloud drives)
ongke0711 > 03-03-21, 05:49 PM
Bổ sung: Cách lấy link download trực tiếp đối với One Drive
---------------------------------------------------------------------------------------------------------------------------
Trường hợp các bạn lưu file Front End cập nhật mới trên One Drive thì xem hướng dẫn bên dưới.
Việc lấy link của One Drive để đưa vào hàm Download nó khác với Google Drive. Các bạn thao tác như trong hình đính kèm để lấy link cho đúng.
- Bấm chuột phải vào file cần download - chọn "Embed". (File phải được share rồi nhé)
- Chỉ copy đường link nằm trong dấu ngoặc màu đỏ.
-
RE: Demo - Cập nhật ứng dụng Front end Ms Access qua internet (Cloud drives)
yamakashi2003 > 07-03-21, 08:47 PM
(02-03-21, 12:19 PM)ongke0711 Đã viết: Cập nhật ứng dụng Front end Ms Access qua internet (Cloud Google Drive, One Drive...)
Bác ơi, 1 số file tải trong thư mục data có password ạ,
(Nút "Quyên góp" góc trên bên phải.)
Link file: https://www.mediafire.com/file/sl3baxp1o...e.zip/file
Nhờ bác gửi em xin password với -
RE: Demo - Cập nhật ứng dụng Front end Ms Access qua internet (Cloud drives)
ongke0711 > 07-03-21, 09:16 PM
(07-03-21, 08:47 PM)yamakashi2003 Đã viết: Bác ơi, 1 số file tải trong thư mục data có password ạ,
- Nếu bạn chịu ngâm cứu kỹ chút đối với việc tách database thành Front end (FE) và Back end (BE), dùng linked table thì cái password đó rất đơn giản để biết, không làm khó bạn đâu. File này tôi không khoá Shift, không chuyển thành .accde thì có rất nhiều cách để biết password file BE.
- Pass: đã đề cập trong phần hướng dẫn sử dụng ở trên. -
RE: Demo - Cập nhật ứng dụng Front end Ms Access qua internet (Cloud drives)
yamakashi2003 > 07-03-21, 10:19 PM
(07-03-21, 09:16 PM)ongke0711 Đã viết:
à em tìm trong table rồi, mà quên chưa xóa comment(07-03-21, 08:47 PM)yamakashi2003 Đã viết: Bác ơi, 1 số file tải trong thư mục data có password ạ,
- Nếu bạn chịu ngâm cứu kỹ chút đối với việc tách database thành Front end (FE) và Back end (BE), dùng linked table thì cái password đó rất đơn giản để biết, không làm khó bạn đâu. File này tôi không khoá Shift, không chuyển thành .accde thì có rất nhiều cách để biết password file BE.
- Pass: đã đề cập trong phần hướng dẫn sử dụng ở trên.
Sorry bác
Tiện bác chỉ giúp em cách đổi biểu tượng access trên thanh taskbar, lúc đăng nhập xong, được không ạ -
RE: Demo - Cập nhật ứng dụng Front end Ms Access qua internet (Cloud drives)
ongke0711 > 07-03-21, 10:44 PM
-
RE: Demo - Cập nhật ứng dụng Front end Ms Access qua internet (Cloud drives)
yamakashi2003 > 09-03-21, 09:04 PM
(07-03-21, 10:44 PM)ongke0711 Đã viết:
File demo ở trên hình như có cả code tạo thanh menu bar trong access phải k bác, em không học phần này (vì thấy nó phức tạp mà lại phải chỉnh nhiều cho các phiên bản), nên đang chưa hiểu được(07-03-21, 10:19 PM)yamakashi2003 Đã viết: Tiện bác chỉ giúp em cách đổi biểu tượng access trên thanh taskbar, lúc đăng nhập xong, được không ạ
Bạn vô Access -> Option -> Current Database -> mục Application Icon.
Chỗ em làm có 1 ổ máy chủ server, tạo 4 ổ dùng chung giữa tất cả các máy trong công ty, khi em cho file demo này vào trong ổ dùng chung đó thì form cập nhật chạy rồi treo máy luôn
Nhờ bác xem giúp!! -
RE: Demo - Cập nhật ứng dụng Front end Ms Access qua internet (Cloud drives)
ongke0711 > 10-03-21, 02:22 PM
(09-03-21, 09:04 PM)yamakashi2003 Đã viết: Chỗ em làm có 1 ổ máy chủ server, tạo 4 ổ dùng chung giữa tất cả các máy trong công ty, khi em cho file demo này vào trong ổ dùng chung đó thì form cập nhật chạy rồi treo máy luôn
Tôi nghĩ chắc là bạn chưa biết cách áp dụng công cụ Split Database của Access.
- Ổ dùng chung chỉ lưu cái folder "Data" trong file demo.
- Còn folder "Update" + file "UpdateFE_online.accdb" thì copy cho từng máy con. Khi máy con chạy file UpdateFE_online.accdb thì sẽ kết nối tới CSDL lưu ở Folder Data trên máy chủ.
Theo như bạn mô tả thì bạn lưu toàn bộ vào một folder dùng chung và nhiều người vào folder này để chạy file đúng không? Đó là cách sai hoàn toàn nhé.
Lý do máy bị đơ, là do VBA là ngôn ngữ lập trình đơn luồng, nó chỉ xử lý và chạy tuần tự từng dòng code chứ không chạy song song 2, 3 luồng đo đó khi có 1 người bấm chạy trên cùng 1 file FE thì những người khác xem như đóng băng.