PDA

Click to See Complete Forum and Search --> : Old Access Prob


Sep 22nd, 2000, 10:42 AM
I am use Access 2.0 (don't laugh, its at work, and they won't let me upgrade, because they don't want to spend the money) and I need to find a means of preventing a user from accessing the database window. Is this even possible in this version?

JHausmann
Sep 22nd, 2000, 11:08 AM
Not sure what you mean by "accessing the database window".

If you want to prevent someone from opening the database, in Access, you can change security so that the user needs to enter a valid user/password (.mda or .mdw file) _or_ slap a password on the database (although the password can be cracked easily enough by 3rd party tools).

Sep 22nd, 2000, 11:30 AM
Actually I mean once they are in the database, I need to restrict them from opening the tables themselves. (i.e. f11, or minimizing a form, etc) So that they are kept inside the forms, and reports that I allow them into. The tricky part is that they still need to be able to have access to all the data in the tables, I just don't want them getting to open the tables straight.
I am not worried about outside hackers, rather insiders who don't know or care what they are doing, and have deleted half a table by selecting and hitting delete key.

JHausmann
Sep 22nd, 2000, 11:38 AM
With a .mda/.mdw file you'll be able to prevent them from deleting data (by setting permissions) but you won't be able to stop them from doing normal access functions.

Sep 22nd, 2000, 12:07 PM
Yeah, I have a .mda file, but the prob is that I have a guy, who has to have the rights to update, edit, add, and delete data from a specific table, however, he is does what ever he feels like and doesn't pay any attention. From within the forms I can control his modifications, however if he goes opens the tables themselves he can and has wiped out large portions of data, unintentionally. (removing him is also not an option as his is the owners brother in law), I have decent security on the system, but who protects themselves from themselves, while still allowing themselves to operate.
Thanks for the ideas though

JHausmann
Sep 22nd, 2000, 12:51 PM
There's not going to be much you can do, you cannot prevent people from doing stupid things when they have total access to the database.

Can you put the database under souce control (SourceSafe) and force your user to check it/out in order to make changes? If you can, you could at least fall back to a pre-disaster state

Sep 22nd, 2000, 01:31 PM
I could if this were a true VB database, but this is a VBA database, Access 2.0 (darn), anyway, thanks, I have implemented 1/2 hourly databackups that I keep for a two week period, but I still am not comfortable, what if I miss something for that period of time. Oh well, that is what I was afraid of. Thanks again though.

Sep 22nd, 2000, 04:41 PM
What if you placed all the tables in a database1. Put all the forms and code and reports in database2. Then password database 1.

Instead of attaching the tables into database2, you can connect with code as necessary. If you need to build intermediate tables, you can build the queries based on the connections.

In this manner, you should be able to keep this person from accessing the tables in 1.

It'll be a pain to program, tho.


Good Luck
DerFarm

Sep 22nd, 2000, 05:03 PM
Thats a good idea, while I hate the thought of reprogramming that much of the database, I hate the idea of lossing the data for our company even more. I sorta need this stupid job, and if I don't protect our data I don't protect my job.
The good thing is that I already have the data in a server side database, the front end on the local machines so I am a good part of the way there. Now I just need to access the tables via the code instead of the attachments.
Thanks a bunch

Sep 22nd, 2000, 05:08 PM
Hey (Thinking out load here) I think it might be possible to remove the attachments to the tables when ever a form is closed and open them when ever they are opened, in this way I could prevent somebody from opening the tables up, since they would only be available when someone is in the form and not when they are not in a form.

Just a thought that came from DerFarms post.

Sep 25th, 2000, 10:13 AM
I was thinking along the lines of recreating the queries each time through...

I don't like to attach things, because I'm always afraid that I'll make an error and kill something I shouldn't. I usually do something like:

Select * from xxx in 'c:\whateverthehelll'


In what I've done I have put each query into its own function. I then explicitly add it to the database.

WorkingTableNullsCode = WorkingTableNulls_sql(WorkingTableName, TargetEncVar)
Set This_qry = Target_DBS.CreateQueryDef(WorkingTableNullsName, WorkingTableNullsCode)


Before I leave, I explictly erase the query. I did this to avoid unnecessary intermediate tables (the process creates some huge ones), and to return a "clean" database to the end user.

Which method would be faster in execution? I must say, I think yours would probably be faster in programming, tho I believe mine would allow for easier maintenance.

Good Luck
DerFarm