when users go around the form to update table directly

  • Thread starter Thread starter Laura Prendville
  • Start date Start date
L

Laura Prendville

I'm in Access 2002.

I made a lovely form to update a timestamp and CurrentUser
field, but users are going around the form to update the
table directly.

How can i get these fields to update if a user changes
data directly in the table? I can't even get the
CurrentUser() to work in the table's default value.

I'm trying to migrate from Foxpro 2.6 to Access. Due to
ISO standards, I can't roll my project out until I can
address this.

please help. thanks.

-Laura
 
Laura said:
I'm in Access 2002.

I made a lovely form to update a timestamp and CurrentUser
field, but users are going around the form to update the
table directly.

How are they even getting to the table?
How can i get these fields to update if a user changes
data directly in the table? I can't even get the
CurrentUser() to work in the table's default value.

No, that function won't work in a table.

You should:
Create custom menus/toolbars for use throughout your application.
Create a startup form (a main menu form if you have one) that is opened on
startup.
Use the features in Tools, Startup to
set the startup form
set your default menu (the custom one you made)
disable all the checkboxes about allowing built in menus, toolbars,
changes etc.
hide the db window (ensure the custom menu you create does not
include the Windows, Unhide item)
Click on the Advanced button and uncheck the allow special keys
(this will disable the F11 key, among others)

If you need to bypass these startup features, you can hold the shift key
down while you open the db. If you feel that your users may use this to
bypass your settings, you can disable the shift key bypass - there's an
example in help for doing this(look for AllowBypassKey) or at
http://www.mvps.org/access/modules/mdl0011.htm
and
http://www.mvps.org/access/general/gen0040.htm

You can also create a MDE from your database, which will prevent changes to
forms, reports and modules (If you do this, be certain to keep your original
mdb in case you need to make changes).
 
laura said:
Hi Joan,

Thanks. I made a form, but my users are savvy about getting to the
table.

Explain just what they are doing. If you disable the shiftkey bypass, only
a user that's a member of the Admins group will be able to enable it again.
They shouldn't be able to see the database window, so shouldn't be able to
open the tables. You also can deny them permission to the table(s) and use
RWOP (run with owner permission) queries for all data interaction.
In the form I was able to disable the "CurrentUser" and
"Timestamp" fields, to prevent them from modifying these fields
directly.

I was hoping to run perhaps, an autoexec module that would detect a
data change on the record level and update those two fields to Now()
and CurrentUser() defaults.

You can do this, but not via autoexec. In the Before Update event procedure
for your form, put the following code:

Me!ModifiedBy = CurrentUser()
Me!ModifiedOn = Now()
 
Back
Top