-
Đóng gói ứng dụng access
dangvanhoavc > 21-09-20, 01:08 PM
Mình mới tập viết 1 ứng dụng bằng access, giờ muốn đóng gói lại thì gặp rắc rối. Do mình tự học nên nhiều cái không hiểu mong mọi người giúp đỡ
Thứ 1: Khi mình lưu lại dưới dạng .accde thì một số button mình chèn code vba không hoạt động, một số thao tác nháy đúp chuột vào đối tượng cũng không hoạt động. Trong khi để ở file accdb thì mọi thứ vẫn hoạt động tốt.
thứ 2: mình dùng access 2010 nhưng phần public không có mục package solution để đóng gói ứng dụng thành file exe. Mình đã thử cài lại tất cả các mục trong bộ office nhưng vẫn không thấy -
RE: Đóng gói ứng dụng access
ledangvan > 21-09-20, 04:55 PM
Access theo mĩnh là ko có đóng gói riêng, từ trước đến giờ mình toàn dùng phần mềm này để đóng gói, bạn nghiên cứu nhé : http://www.mediafire.com/file/k1wl4dzat6...m.zip/file -
RE: Đóng gói ứng dụng access
tranthanhan1962 > 21-09-20, 10:46 PM
Đóng gói là gì? Một chương trinh thường do nhiều tập tin tương tác với nhau mới hoạt động được. Để tránh mất mát khi di chuyển người ta mới đóng gói. Lúc đầu một chương trình chỉ có vài lệnh MS DOS gom lai thành một tập tin .BAT. Sau này khi số lượng tâp tin lớn hơn file .EXE là tâp tin để chạy chương trình. Windows 311 chỉ cần copy toàn bộ thư mục windows vào máy sau đó chạy lệnh Windows.exe là có thể chạy win trên nền DOS (win 311 có thể chạy ngay trên ổ đĩa mềm sau khi khởi động DOS). Sau này đến Windows 95, để cài máy có 2 cách: 1. Chạy lệnh Setup để cài máy, 2. Copy toàn bộ thư mục chương trình vào máy. Điểm khác biệt của 2 cách này là nếu cai thì khi khởi đông máy sẽ vào ngay win, còn copy thì phải set auto run cho tập tin windows.exe thì khi mở máy windows mới tự khởi đông. Tương tự, khi viết một chương trình người ta sẽ có nhiều tâp tin cho một project. Ví dụ như VB6 tất cả các tập tin liên quan như .OCX, DLL... đệu phải đưa vào chung thư mục chương trinh chứ không phải vô reference check check vô máy cái ô. Vì lẽ đó người ta mới dung cách đóng gói và cài đặt. Một cách copy và thiết đặt tập tin khởi động chương trình. Nhìn lại Access chương trình cũng chỉ có 1 tập tin, cao lắm là 2 (back end và front end), mở lên là chạy. Đóng gói cái gì?. Tôi còn nhớ có một lần nhiều năm về trước, tôi đem việc này hỏi trên một forrum nước ngoài. Thì có một người phản hồi: You are doing a lot of work and the funny.
-
RE: Đóng gói ứng dụng access
Xuân Thanh > 22-09-20, 02:56 PM
1/ Với Acc2010 có sẵn chương trình đóng gói, các Ver khác không có
2/ Đúng như trantanhan1962 đã nói. Có cần thiết phải đóng gói không trừ phi có thêm một số chương trình phụ trợ khác ngoài Access -
RE: Đóng gói ứng dụng access
dangvanhoavc > 22-09-20, 08:52 PM
(21-09-20, 04:55 PM)ledangvan Đã viết: Access theo mĩnh là ko có đóng gói riêng, từ trước đến giờ mình toàn dùng phần mềm này để đóng gói, bạn nghiên cứu nhé : http://www.mediafire.com/file/k1wl4dzat6...m.zip/file
Theo mình tìm hiểu thì access 2010 trở lên có mà -
RE: Đóng gói ứng dụng access
dangvanhoavc > 22-09-20, 08:56 PM
(21-09-20, 10:46 PM)tranthanhan1962 Đã viết: Đóng gói là gì? Một chương trinh thường do nhiều tập tin tương tác với nhau mới hoạt động được. Để tránh mất mát khi di chuyển người ta mới đóng gói. Lúc đầu một chương trình chỉ có vài lệnh MS DOS gom lai thành một tập tin .BAT. Sau này khi số lượng tâp tin lớn hơn file .EXE là tâp tin để chạy chương trình. Windows 311 chỉ cần copy toàn bộ thư mục windows vào máy sau đó chạy lệnh Windows.exe là có thể chạy win trên nền DOS (win 311 có thể chạy ngay trên ổ đĩa mềm sau khi khởi động DOS). Sau này đến Windows 95, để cài máy có 2 cách: 1. Chạy lệnh Setup để cài máy, 2. Copy toàn bộ thư mục chương trình vào máy. Điểm khác biệt của 2 cách này là nếu cai thì khi khởi đông máy sẽ vào ngay win, còn copy thì phải set auto run cho tập tin windows.exe thì khi mở máy windows mới tự khởi đông. Tương tự, khi viết một chương trình người ta sẽ có nhiều tâp tin cho một project. Ví dụ như VB6 tất cả các tập tin liên quan như .OCX, DLL... đệu phải đưa vào chung thư mục chương trinh chứ không phải vô reference check check vô máy cái ô. Vì lẽ đó người ta mới dung cách đóng gói và cài đặt. Một cách copy và thiết đặt tập tin khởi động chương trình. Nhìn lại Access chương trình cũng chỉ có 1 tập tin, cao lắm là 2 (back end và front end), mở lên là chạy. Đóng gói cái gì?
. Tôi còn nhớ có một lần nhiều năm về trước, tôi đem việc này hỏi trên một forrum nước ngoài. Thì có một người phản hồi: You are doing a lot of work and the funny.
ý mình là muốn giấu mã code và các table không để người dùng can thiệp vào, theo mình tìm hiểu có 2 cách là đóng gói thành file exe và tạo file mde nhưng khi mình tạo file mde thì một số code vba trong đó lại không hoạt động -
RE: Đóng gói ứng dụng access
tranthanhan1962 > 23-09-20, 12:05 AM
Để dấu code và khóa design có 3 cách, tính theo mức độ bảo mật từ thấp đến cao:
1/ Vẫn sử dụng tập tin accdb: Ẩn Navigation Pane, vô hiệu hóa shortcut menu, khóa phím shift
2/ Chuyển tập tin accdb thành accde: Ẩn Navigation Pane, khóa phím shift.
3/ Chuyển tập tin accdb thành accde: Ẩn Navigation Pane, vô hiệu hóa shortcut menu, khóa phím shift
Với cách thứ nhất cũng đủ làm khó nhưng đối thủ có trình độ trung bình rồi. Bạn có thể dung phần mềm Inno setup Compiler hoăc một vài phần mềm khác dể đong gói thành một tập tin cài đặt (kiểu như setup.exe). Bản chất của tâp tin setup nầy không phải trực tiếp chạy access mà sẽ trả về những tập tin bạn đã đóng gói vào một thư mục được được chọn khi chuyển qua máy mới (nếu đóng gói accdb sẽ trả lại accdb, nếu đóng gói accde sẽ trả lại accde, mèo lại hoàn mèo). Nên việc đóng gói không có khả năng bảo mật hay dấu mã code.
Vấn đề khi chuyển từ accbd sang accde không làm thay đỏi việc hoạt động code VBA. Nếu accbd chạy tốt tren một máy thì khi chuyển sang accde vẫn chạy tốt trên máy đó. Thậm chí bạn sẽ không thể chuyển sang accde khi code của ban có lỗi. Còn khi tâp tin accde không chạy trên máy khác thì chắc chắn khi bạn chuyển accdb sang nó cũng không chạy và báo lỗi.
Code VBA của access khác với code VB hay các loại chương trình khác. Trong VB khi bạn sử dung 1 tập tin nào đó bạn sẽ phải import tập tin đó vào chương trình của mình. Khi cài đặt tất cả các tập tin đó sẽ xuất hiện đầy đủ trong thư muc chương trình. Còn VBA trong access các tập tin hỗ trọ code sẽ nằm trong thư mục office hoặc windows. Nên khi chuyển sang máy khác sẽ dễ dàng bị lỗi khi không tìm thấy tập tin trên đường dẫn reference. Do toàn xài phần mềm bẻ khó@ nên khả năng cài win - office bị lỗi , bị thiếu là rất lớn. Điêm khác biệt giữa accdb và accde là với accdb khi lỗi code nó sẽ mở giao dien code và xuât hiên thông báo compile error và mở đoạn code lỗ quét màu vàng. Bạn phải đóng thông báo và sửa lỗi chương trình mới có thể hoạt động tiếp hoặc tắt chương trình. Nếu không chương trình bị kẹt. Còn trên accde bạ không thể làm việc này (do không có quyền vào code). nếu bị kẹt chương trình thì chỉ có đường tắt máy khởi động lại. Muốn biết tại sao code không hoạt đọng chỉ có cach chép tâp tin accdb sang chạy thử -
RE: Đóng gói ứng dụng access
yamakashi2003 > 23-09-20, 12:34 PM
(23-09-20, 12:05 AM)tranthanhan1962 Đã viết: Để dấu code và khóa design có 3 cách, tính theo mức độ bảo mật từ thấp đến cao:
Bác ơi cho em hỏi cách Ẩn Navigation Pane, vô hiệu hóa shortcut menu ạ
1/ Vẫn sử dụng tập tin accdb: Ẩn Navigation Pane, vô hiệu hóa shortcut menu, khóa phím shift
2/ Chuyển tập tin accdb thành accde: Ẩn Navigation Pane, khóa phím shift.
3/ Chuyển tập tin accdb thành accde: Ẩn Navigation Pane, vô hiệu hóa shortcut menu, khóa phím shift
Với cách thứ nhất cũng đủ làm khó nhưng đối thủ có trình độ trung bình rồi. Bạn có thể dung phần mềm Inno setup Compiler hoăc một vài phần mềm khác dể đong gói thành một tập tin cài đặt (kiểu như setup.exe). Bản chất của tâp tin setup nầy không phải trực tiếp chạy access mà sẽ trả về những tập tin bạn đã đóng gói vào một thư mục được được chọn khi chuyển qua máy mới (nếu đóng gói accdb sẽ trả lại accdb, nếu đóng gói accde sẽ trả lại accde, mèo lại hoàn mèo). Nên việc đóng gói không có khả năng bảo mật hay dấu mã code.
Vấn đề khi chuyển từ accbd sang accde không làm thay đỏi việc hoạt động code VBA. Nếu accbd chạy tốt tren một máy thì khi chuyển sang accde vẫn chạy tốt trên máy đó. Thậm chí bạn sẽ không thể chuyển sang accde khi code của ban có lỗi. Còn khi tâp tin accde không chạy trên máy khác thì chắc chắn khi bạn chuyển accdb sang nó cũng không chạy và báo lỗi.
Code VBA của access khác với code VB hay các loại chương trình khác. Trong VB khi bạn sử dung 1 tập tin nào đó bạn sẽ phải import tập tin đó vào chương trình của mình. Khi cài đặt tất cả các tập tin đó sẽ xuất hiện đầy đủ trong thư muc chương trình. Còn VBA trong access các tập tin hỗ trọ code sẽ nằm trong thư mục office hoặc windows. Nên khi chuyển sang máy khác sẽ dễ dàng bị lỗi khi không tìm thấy tập tin trên đường dẫn reference. Do toàn xài phần mềm bẻ khó@ nên khả năng cài win - office bị lỗi , bị thiếu là rất lớn. Điêm khác biệt giữa accdb và accde là với accdb khi lỗi code nó sẽ mở giao dien code và xuât hiên thông báo compile error và mở đoạn code lỗ quét màu vàng. Bạn phải đóng thông báo và sửa lỗi chương trình mới có thể hoạt động tiếp hoặc tắt chương trình. Nếu không chương trình bị kẹt. Còn trên accde bạ không thể làm việc này (do không có quyền vào code). nếu bị kẹt chương trình thì chỉ có đường tắt máy khởi động lại. Muốn biết tại sao code không hoạt đọng chỉ có cach chép tâp tin accdb sang chạy thử
Em xin cảm ơn -
RE: Đóng gói ứng dụng access
AnNguyen > 23-09-20, 12:52 PM
Đây bạn ơi, mình có đoạn code này trước anh Bảo cho nay vẫn dùng,
Trong ứng dụng mình viết thì mình có điều kiện là file ACCDE thì mới áp dụng cái này còn file ACCDB là designer thì không cần vì khóa mà quên không mở cùng khổ
Mã:Public Sub SercurityDB(locker As Boolean)
'SecurityDB True ( False)
' Doi ten ung dung
'ChangeProperty "Apptitle", dbText, "QUAN LY NHAN SU"
' Dat lai form khoi dong cua ung dung
'ChangeProperty "StartupForm", dbText, "frmLogin"
' Cho nhìn thay Khung Database hay không
ChangeProperty "StartupShowDBWindow", dbBoolean, locker
' Cho nhìn thay thanh Status hay không
ChangeProperty "StartupShowStatusBar", dbBoolean, locker
' Cho phép hien thanh design hay không
ChangeProperty "AllowBuiltinToolbars", dbBoolean, locker
' Cho phép thêm bot 1 item vào các thanh công cu hay không
ChangeProperty "AllowToolbarChanges", dbBoolean, locker
' Cho phép hien thanh menu con khi click chuot phai hay không
ChangeProperty "AllowShortcutMenus", dbBoolean, locker
' Cho phép hien toan bo thanh menu hay không
ChangeProperty "AllowFullMenus", dbBoolean, locker
'Cho phép ngung chuong trình bang phím Ctrl+ Break khi dang chay hay không
ChangeProperty "AllowBreakIntoCode", dbBoolean, locker
' Vô hieu hoa phím dac biet nhu: F11
ChangeProperty "AllowSpecialKeys", dbBoolean, locker
' Vô hieu hoa phím shift
ChangeProperty "AllowBypassKey", dbBoolean, locker
'Cho phep design/ sua thuoc tính form/ report khi ðang mo hay không.
ChangeProperty "AllowDesignChanges", dbBoolean, locker
'ChangeProperty "AppIcon", dbText, Access.CurrentProject.Path & "\HinhAnh\Icons\ongke0711.ico"
Application.SetOption "ShowWindowsInTaskbar", locker
End Sub
Còn Ẩn Navigation Pane mình từng thử dù ẩn hết nhưng khi vào chọn thanh tiêu đề chọn "Customize the Ribo" thì sau đó tìm mấy cái tab kia vẫn hiện nó lên được và vào được các FORM mà không theo lộ trình hoặc bị khóa,
Nên mình thêm 1 bước là khi lưu thành file accde rồi thì hiện Navigation ra rồi ẩn từng nhóm đối tượng là Form, table, report..
Cá nhân mình là thấy như vậy -
RE: Đóng gói ứng dụng access
tranthanhan1962 > 23-09-20, 03:15 PM
(23-09-20, 12:34 PM)yamakashi2003 Đã viết: Bác ơi cho em hỏi cách Ẩn Navigation Pane, vô hiệu hóa shortcut menu ạ
Ẩn Navigation Pane: Tab File/Option/Curent Database --> Bỏ check Display Navigation Pane
Em xin cảm ơn
Vô hiệu hóa shortcut menu: Mở form ở chế độ Design View --> properties/Other --> Shortcut Menu = No (nếu có custom shortcut menu thì chọn shortcut menu bar)
Bonus thêm cho bạn.
Các bước xử lý chương trình hoàn chỉnh để chuyển giao:
1/Tạo Custom Menu hay Custom Ribbon (Đói với Ribbon phải có phần backstage để khóa option đối với accbd). Xử lý khóa shift
2/Kiểm tra tất cả các đối tượng (All Access Object): Xóa bỏ các đối tượng tạm, dư thừa.
3/Compile code VBA, sửa các lỗi nếu có.
4/Mở Reference: Chụp hoăc cắt hình Reference lưu lại, Đa số các bạn newbie bỏ qua bước này. Đây là những tập tin chương trình nạp khi chạy code VBA. Đa số lỗi VBA khi đem chương trình sang máy khác do phần này.
5/Tiến hành khóa shift và convert accde
Vậy là đem tập tin accde chuyển giao thôi.