473,394 Members | 1,828 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

How to Prevent Table Updates in a Form

I have a form in Access97 which facilitates a query against a production
Access database. Users will enter some search terms and see a datasheet
view of the results in a subform. The prod table is linked (the form is
not included in the production mdb file). I need to ensure that an
unexperienced user will not accidentally change the prod table. What
measures should I take?

So far I have done the following:

In the subform, set Allow Edits, Allow Deletions, Allow Additions to NO.
In the database, set Tools.Startup.Display Form to show the search form
and unchecked "Display Database Window".

Is there anything else I should consider? I expect the average user to
have very limited knowledge of Access.

Regards,
--
Smartin
Nov 13 '05 #1
8 4841
Set the locked property of the subform to True

Smartin wrote:
I have a form in Access97 which facilitates a query against a production
Access database. Users will enter some search terms and see a datasheet
view of the results in a subform. The prod table is linked (the form is
not included in the production mdb file). I need to ensure that an
unexperienced user will not accidentally change the prod table. What
measures should I take?

So far I have done the following:

In the subform, set Allow Edits, Allow Deletions, Allow Additions to NO.
In the database, set Tools.Startup.Display Form to show the search form
and unchecked "Display Database Window".

Is there anything else I should consider? I expect the average user to
have very limited knowledge of Access.

Regards,
--
Smartin


Nov 13 '05 #2
Smartin <sm********@yahoo.com> wrote in
news:6c********************@giganews.com:
I have a form in Access97 which facilitates a query against a
production Access database. Users will enter some search terms
and see a datasheet view of the results in a subform. The prod
table is linked (the form is not included in the production
mdb file). I need to ensure that an unexperienced user will
not accidentally change the prod table. What measures should I
take?

So far I have done the following:

In the subform, set Allow Edits, Allow Deletions, Allow
Additions to NO. In the database, set Tools.Startup.Display
Form to show the search form and unchecked "Display Database
Window".

Is there anything else I should consider? I expect the average
user to have very limited knowledge of Access.

Regards,
--
Smartin


1) If the production database has security enabled, consider
creating a read-only user and accessing the table through that
user's login.

2) Create a .mde and distribute the mde to your users instead of
the .mdb

--
Bob Quintal

PA is y I've altered my email address.
Nov 13 '05 #3
Bob Quintal wrote:
Smartin <sm********@yahoo.com> wrote in
news:6c********************@giganews.com:

I have a form in Access97 which facilitates a query against a
production Access database. Users will enter some search terms
and see a datasheet view of the results in a subform. The prod
table is linked (the form is not included in the production
mdb file). I need to ensure that an unexperienced user will
not accidentally change the prod table. What measures should I
take?

So far I have done the following:

In the subform, set Allow Edits, Allow Deletions, Allow
Additions to NO. In the database, set Tools.Startup.Display
Form to show the search form and unchecked "Display Database
Window".

Is there anything else I should consider? I expect the average
user to have very limited knowledge of Access.

Regards,
--
Smartin

1) If the production database has security enabled, consider
creating a read-only user and accessing the table through that
user's login.

2) Create a .mde and distribute the mde to your users instead of
the .mdb


Thank you for the suggestions. I can't get the .mde solution to work for
me. Any thoughts?

My form is in an Access database file which doesn't actually contain any
data. The only "table" is linked from the prod .mdb file. I tried making
an .mde out of the prod file and linking to that instead but the result
is the same.

The result is the entire linked table is returned regardless of the
search terms. When I put some search terms in and launch the query, I
still get the entire table back. Since I am setting properties of the
subform object at runtime I'm guessing my problem is related to the
following caveat (found in help under About MDE files):

=== quote
[MDE files prevent] Changing code using the properties or methods of the
Microsoft Access or VBA Object models--an MDE file contains no source code.
=== end quote

Maybe what I really should do is rewrite this as a stand-alone front end
application.
--
Smartin
Nov 13 '05 #4
Smartin <sm********@yahoo.com> wrote in
news:nu********************@giganews.com:
Bob Quintal wrote:
Smartin <sm********@yahoo.com> wrote in
news:6c********************@giganews.com:

I have a form in Access97 which facilitates a query against a
production Access database. Users will enter some search
terms and see a datasheet view of the results in a subform.
The prod table is linked (the form is not included in the
production mdb file). I need to ensure that an unexperienced
user will not accidentally change the prod table. What
measures should I take?

So far I have done the following:

In the subform, set Allow Edits, Allow Deletions, Allow
Additions to NO. In the database, set Tools.Startup.Display
Form to show the search form and unchecked "Display Database
Window".

Is there anything else I should consider? I expect the
average user to have very limited knowledge of Access.

Regards,
--
Smartin

1) If the production database has security enabled, consider
creating a read-only user and accessing the table through
that user's login.

2) Create a .mde and distribute the mde to your users instead
of the .mdb


Thank you for the suggestions. I can't get the .mde solution
to work for me. Any thoughts?


Lots of questions: What happens when you try to create the .med
of your report file?
My form is in an Access database file which doesn't actually
contain any data. The only "table" is linked from the prod
.mdb file. I tried making an .mde out of the prod file and
linking to that instead but the result is the same.

The result is the entire linked table is returned regardless
of the search terms. When I put some search terms in and
launch the query, I still get the entire table back. Since I
am setting properties of the subform object at runtime I'm
guessing my problem is related to the following caveat (found
in help under About MDE files):
That should not cause a problem. You can change the recordsource
of a subform in an .mde. But the code has to generate the sql
statement entirely,
=== quote
[MDE files prevent] Changing code using the properties or
methods of the Microsoft Access or VBA Object models--an MDE
file contains no source code. === end quote

Maybe what I really should do is rewrite this as a stand-alone
front end application.


You may also want to try the trick of importing the table from
the production databsae, so that even if some hacker messes it
up, the next time the application is opened, it reloads the
data.

--
Bob Quintal

PA is y I've altered my email address.
Nov 13 '05 #5
Bob Quintal wrote:
Smartin <sm********@yahoo.com> wrote in
news:nu********************@giganews.com:

Bob Quintal wrote:
Smartin <sm********@yahoo.com> wrote in
news:6c********************@giganews.com:

I have a form in Access97 which facilitates a query against a
production Access database. Users will enter some search
terms and see a datasheet view of the results in a subform.
The prod table is linked (the form is not included in the
production mdb file). I need to ensure that an unexperienced
user will not accidentally change the prod table. What
measures should I take?

So far I have done the following:

In the subform, set Allow Edits, Allow Deletions, Allow
Additions to NO. In the database, set Tools.Startup.Display
Form to show the search form and unchecked "Display Database
Window".

Is there anything else I should consider? I expect the
average user to have very limited knowledge of Access.

Regards,
--
Smartin
1) If the production database has security enabled, consider
creating a read-only user and accessing the table through
that user's login.

2) Create a .mde and distribute the mde to your users instead
of the .mdb
Thank you for the suggestions. I can't get the .mde solution
to work for me. Any thoughts?

Lots of questions: What happens when you try to create the .med
of your report file?


I assume you meant .mde? The .mde's are generated without any complaint
from Access. No error messages. This is true of both my search file and
the prod database. However

Search MDB + Prod MDB = Works fine
Search MDB + Prod MDE = Works fine
Search MDE + Prod MDB = Fails to query correctly
Search MDE + Prod MDE = Fails to query correctly
My form is in an Access database file which doesn't actually
contain any data. The only "table" is linked from the prod
.mdb file. I tried making an .mde out of the prod file and
linking to that instead but the result is the same.

The result is the entire linked table is returned regardless
of the search terms. When I put some search terms in and
launch the query, I still get the entire table back. Since I
am setting properties of the subform object at runtime I'm
guessing my problem is related to the following caveat (found
in help under About MDE files):


That should not cause a problem. You can change the recordsource
of a subform in an .mde. But the code has to generate the sql
statement entirely,


When the "Search" button is clicked the SQL statement is generated on
the fly as "SELECT {columns} FROM {table} WHERE {conditions};" and
assigned to the subform's RecordSource property.
=== quote
[MDE files prevent] Changing code using the properties or
methods of the Microsoft Access or VBA Object models--an MDE
file contains no source code. === end quote

Maybe what I really should do is rewrite this as a stand-alone
front end application.

You may also want to try the trick of importing the table from
the production databsae, so that even if some hacker messes it
up, the next time the application is opened, it reloads the
data.


Do I understand you correctly... Can I import the data table at runtime
and "disconnect" from the production database? That sounds like a good
way to go. If you can point me in the right direction for how to do this
with VBA I'd appreciate it.

The prod table is updated once a day more or less. I'd like for the
search to always be looking at current data without having to manually
create an .mde every time the prod database is updated.

Thanks again.
--
Smartin
Nov 13 '05 #6
Smartin <sm********@yahoo.com> wrote in
news:d6********************@giganews.com:
Bob Quintal wrote:
Maybe what I really should do is rewrite this as a
stand-alone front end application.

You may also want to try the trick of importing the table
from the production databsae, so that even if some hacker
messes it up, the next time the application is opened, it
reloads the data.


Do I understand you correctly... Can I import the data table
at runtime and "disconnect" from the production database? That
sounds like a good way to go. If you can point me in the right
direction for how to do this with VBA I'd appreciate it.

Yes, create the code for a delete query and an insert query
using the general form of

DeleteSQL = "Delete * from table1;"
AppendSQL ="INSERT into table1 Alias Target .... SELECT ...
FROM Table1 IN C:\OtherDir\Production.mdb Alias Source;

And execute them from code.

sql.execute strDeleteSQL
sql.execute AppendSQL


The prod table is updated once a day more or less. I'd like
for the search to always be looking at current data without
having to manually create an .mde every time the prod database
is updated.

Thanks again.


--
Bob Quintal

PA is y I've altered my email address.
Nov 13 '05 #7
Bob Quintal wrote:
Yes, create the code for a delete query and an insert query
using the general form of

DeleteSQL = "Delete * from table1;"
AppendSQL ="INSERT into table1 Alias Target .... SELECT ...
FROM Table1 IN C:\OtherDir\Production.mdb Alias Source;

And execute them from code.

sql.execute strDeleteSQL
sql.execute AppendSQL


Thanks for that! OK I've got this working. I copied the prod table into
my database, set up a table to record when refreshes are done, and wrote
some routines fired by the form's open event that check the last refresh
time to see if it's time to refresh again.

More questions?

1. The delete/insert queries take a few minutes to complete. Potentially
other users will try to open the database while updates are in process.
Is there a way to lock out other users while the update is underway and
signal to them to wait a few minutes? This app will deployed on a shared
network resource.

2. What if the prod database is currently in use when a user's instance
determines it's time to refresh? Can I detect this somehow so I can code
around it?

3. Is there a way to capture the current user's name? It's not required
at the moment, but may be useful later.

I seem to be drifting away from my original topic. Thanks for all your help!
--
Smartin
Nov 13 '05 #8
Smartin <sm********@yahoo.com> wrote in
news:X_********************@giganews.com:
Bob Quintal wrote:
Yes, create the code for a delete query and an insert query
using the general form of

DeleteSQL = "Delete * from table1;"
AppendSQL ="INSERT into table1 Alias Target .... SELECT ...
FROM Table1 IN C:\OtherDir\Production.mdb Alias Source;

And execute them from code.

sql.execute strDeleteSQL
sql.execute AppendSQL
Thanks for that! OK I've got this working. I copied the prod
table into my database, set up a table to record when
refreshes are done, and wrote some routines fired by the
form's open event that check the last refresh time to see if
it's time to refresh again.

More questions?

1. The delete/insert queries take a few minutes to complete.
Potentially other users will try to open the database while
updates are in process. Is there a way to lock out other users
while the update is underway and signal to them to wait a few
minutes? This app will deployed on a shared network resource.

I have my routines fire at 2:00 AM. You can write a command
line that starts a macro, which runs the code and quits the
application. Use the command in Start->settings->scheduled
tasks. It's the only macro in the database, everything else is
in modules
2. What if the prod database is currently in use when a user's
instance determines it's time to refresh? Can I detect this
somehow so I can code around it?
see above or below.

3. Is there a way to capture the current user's name? It's not
required at the moment, but may be useful later.
Yes, see http://www.mvps.org/access/general/gen0034.htm if you
have security enabled, and
http://www.mvps.org/access/api/api0008.htm if you don't


I seem to be drifting away from my original topic. Thanks for
all your help!


That's databse development.... one thing leads to another.

--
Bob Quintal

PA is y I've altered my email address.
Nov 13 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
by: Warren Wright | last post by:
Hello, We maintain a 175 million record database table for our customer. This is an extract of some data collected for them by a third party vendor, who sends us regular updates to that data...
6
by: RdR | last post by:
Hi, Has anyone encountered infinite looping in Q Replication? This happens when I have a source DB2 table A going to a target DB2 table B, it also happens that the samne target table B is...
4
by: Terry | last post by:
I need some help refining an MS 2000 relational databse. I have created a simple relational database using two tables, 'Student Details', 'Exam Details' and two forms, 'Input/Edit Exam Details',...
3
by: Randy | last post by:
I want to set up a table where I can enter dates that will prevent data entry of Dates in the Main table. I have done this in Approach by linking two tables and setting up a validation formula...
4
by: simonmarkjones | last post by:
Hi i need to prevent a textfield on a form from being deleted from but allow updates/ append to any text already stored in the database. How can i do this?
7
by: rockdc1981 | last post by:
i have audit trail module using this code... Option Compare Database Option Explicit Public Function AuditTrail() On Error GoTo Err_Audit_Trail 'ACC2000: How to Create an Audit Trail...
0
by: =?Utf-8?B?RU1hbm5pbmc=?= | last post by:
(I originally posted this to the data access newsgroup but received no replies) I've got an Access 2003 mdb that I'm converting to VB.Net. I'm having trouble with getting the main data source to...
0
by: jehrich | last post by:
Hi Everyone, I am a bit of a hobby programmer (read newbie), and I have been searching for a solution to a SQL problem for a recent pet project. I discovered that there are a number of brilliant...
62
by: Wiretwisterz | last post by:
I am using Microsoft Office XP and I have developed an Access database that is used to schedule conference and training rooms within buildings. I have one main form named "Events" that is used to...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.