Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

I need help publishing/deploying an ACCESS 2013 applicaiton

Posted on 2014-12-26
4
Medium Priority
?
514 Views
Last Modified: 2014-12-28
Hi Experts,
I have an Access 2013 application that I want to deploy.  Is there a way for me to prevent users from accessing the tables or the VBA code?  How can I deploy my application so that the user's interaction with the application is only through the front end/user interface?

Thanks in advance,
mrotor
0
Comment
Question by:mainrotor
4 Comments
 
LVL 7

Accepted Solution

by:
Robert Sherman earned 668 total points
ID: 40519259
If you absolutely want to keep anyone from getting at the code and/or design modes, you can save the database as an executable only file.  This will compile all of the code and create a new version of the database file with an .accde extension.   In the .accde file, you can not get into any of your object's design modes and can not view any of the VBA code.   BE AWARE that nobody can, including you.  SO KEEP THE ORIGINAL accdb file for yourself, as that is the only way you will be able to update the database objects.. if you ever make changes, you then would just create a new .accde file to distribute to your users.

To do this, you go into the File menu / backstage view, and select "Save & Publish".  From there you should see a "Make ACCDE" option.

You should thoroughly test your application to make sure it doesn't have any errors, and it is recommended to have error handling code throughout your application because if the executable database encounters any code errors it will not be able to display useful info about the error and won't go into debug mode.  So, the idea is to have user-friendly error messages for any potential errors in order to make troubleshooting client issues easier.


Hope that helps!

EDIT:  Because it bears saying a second time, KEEP THE ORIGINAL FILE!  You WON'T be able to make any changes to the .accde file.
0
 
LVL 85

Assisted Solution

by:Scott McDaniel (Microsoft Access MVP - EE MVE )
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 668 total points
ID: 40519539
Just a note - in 2013, the method to create the .accde format is under the "Save As" menu item. You click the File menu, then Save As, and you can then save the file in the .accde format.

However, even with the .accde format users can still create, view and modify Tables and Queries. You can hide those to some degree by removing the navigation pane from that file. If you do that, you'll have to have a menu form to allow the user to navigate your application. You should also disable the ShiftKeyBypass (http://support.microsoft.com/kb/826765), along with a few other things. These MSFT articles should give you some ideas. These are for 2007, but the same concepts apply:

http://msdn.microsoft.com/en-us/library/cc136539(v=office.12).aspx
http://msdn.microsoft.com/en-us/library/bb501030(v=office.12).aspx

Regarding data security: you really can't keep someone from mucking around in your Tables and Queries. A modestly inquisitive user will quickly find they can link to your database from another one, and import all of your tables and queries. If you want real data security, move the tables and queries to SQL Server, and secure them there.
0
 
LVL 40

Assisted Solution

by:PatHartman
PatHartman earned 664 total points
ID: 40519964
you can save the database as an executable only file
There is no such animal as an executable Access file.  The best you can do is partially complied which is what the .accde is.  That step removes all the source code and leaves only the p-code which renders the forms/reports/modules unavailable in design view.  An executable file is quite different and due to its current structure with all objects residing in a database container, Access will never be executable in the technical sense of the word.

In an .accde, the user can also muck around with macros if you used them.  As Scott mentioned, SQL Server is the best place for data but you can't just move the queries.  That is a huge change to the app.  There is also nothing you can do about macros if you used them.  The only solution would be converting them to VBA so they could be hidden.

I take a couple of other steps after compiling the app.  These steps won't deter someone with experience but they can thwart the average user.
1. Hide all the objects
2. Rename the app as .accdr.  This tells Access to pretend to be the runtime engine so even if the users have the full version of Access installed, Access will pretend to be the runtime engine when it opens the app so it will not allow access to ANYTHING in design view.  This is also easily thwarted if you understand what was done.
0
 

Author Closing Comment

by:mainrotor
ID: 40521343
Thank you all very much.  The help you all provide is EXCELLENT!

mrotor
0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

We live in a world of interfaces like the one in the title picture. VBA also allows to use interfaces which offers a lot of possibilities. This article describes how to use interfaces in VBA and how to work around their bugs.
Windows Explorer lets you open cabinet (cab) files like any other folder. In VBA you can easily handle normal files and folders, but opening and indeed creating cabinet files takes a lot more - and that's you'll find here.
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…

876 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question