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

x
?
Solved

Ms Access prevent queries from being exported

Posted on 2014-01-15
3
Medium Priority
?
375 Views
Last Modified: 2014-02-05
I have an access app that i have compiled to remove the code.  however the passthrough queries are still visible if i attempt to import them from another access app.  Is there a way to prevent the query and table objects from being exported?
0
Comment
Question by:RDLFC
3 Comments
 
LVL 22

Accepted Solution

by:
Kelvin Sparks earned 2000 total points
ID: 39783216
What I have done in the past is to set the properties of each of these to hidden. They are not then visible under normal settings (unless you choose to display hidden objects). They then will not appear in the list of objects that can be exported. There is not real way of preventing this totally although using an accde does make it harder as the user will not be able to change the setting to view hidden objects.


Kelvin
0
 
LVL 85
ID: 39785139
I don't think you can do this with .accdb files. The older .mdb format allowed you to implement User Level Security, and you could remove certain permissions that would handle situations like this, but with .accdb files that's not available.

You could add a Database Password to the file, and a user would need to know that password in order to open the database. Many times the developer will use a "launcher" application to open their password-protected database. The "launcher" app can be another access database the user opens, and then the launcher will actually open the password-protected database. This way, the user doesn't need to know the password:

Dim acc As Access.Application
Set acc = New Access.Application
acc.Visible = True

Dim dbs as DAO.Database
Set dbs = acc.DBEngine.OpenDatabase("full path to your database", False, False, "PWD=YourPassword")
acc.OpenCurrentDatabase "full path to your database"

dbs.Close
Set dbs = Nothing

Open in new window

Code poached from here: http://support.microsoft.com/kb/235422

So your user would open the "launcher" app, and then the "launcher" app would run the code above to open your database. You could do this in the Open or Load event of a form to do things in an automated manner, or you could do this in the Click event of a button.
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 39789957
My guess is that what Scott posted will get you what you want,

You also need to ultimately consider your need for this.

Are you just trying t stop a casual user from clicking "Export"
Or are you trying to "Harden" the data from a determined hacker...
...or some other scenario?

The general rule is that "if they can see it, they can steal it.
 vba automation, SQL Insert queries, Screeenshots, screenscrapers, copy/paste, cameras, even brute force memorization are all possible at some level,

"Is there a way to prevent the query and table objects from being exported? "
Well, if a user is already "in" the database, then they can use any number of technique to export it out...

I may have misunderstood your question here, so these are just some other things to consider.

;-)

JeffCoachman
0

Featured Post

Learn Veeam advantages over legacy backup

Every day, more and more legacy backup customers switch to Veeam. Technologies designed for the client-server era cannot restore any IT service running in the hybrid cloud within seconds. Learn top Veeam advantages over legacy backup and get Veeam for the price of your renewal

Question has a verified solution.

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

In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
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.
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
Suggested Courses

916 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