Solved

When and who accessed an Access table

Posted on 2014-01-10
6
277 Views
Last Modified: 2014-01-10
This sounds remote, but we want to know who and when one of our Access tables was accessed.  Could be a linked table.  We have many tables in many databases that we don't know are used.  We'd like to clean them up(remove).

My brute force idea is to rename the table and see who complains.

Any other ideas?
0
Comment
Question by:gbnorton
6 Comments
 
LVL 34

Accepted Solution

by:
PatHartman earned 250 total points
ID: 39771670
You can get Total Access Analyzer from FMS (www.fmsinc.com) and it will do a good job of documenting the database and identifying any unreferenced objects.  It can't tell you when objects were last used however.  The only way to do that is to add tons of code to the application to track usage.

Newer versions of Access have uses/where used cross references but they are pretty clunky since you have to click through each object separately and you need Name Auto Correct turned on.  The FMS product is much easier to use since it simply gives you a report.

What I do when trying to clean up is to rename the suspect objects with "xx" as a prefix.  That puts them all together at the bottom of the list and they are there if some one complains.  Then after a period of time, I start removing them.

WARNING - make sure you have name auto-correct turned off before you start renaming objects this way or you'll be in for a rude surprise some day.  Name auto-correct doesn't work the way you expect it to so I find it best to simply leave it turned off.  Then if I have some bulk renaming to do, I turn it on.
0
 
LVL 39

Expert Comment

by:als315
ID: 39771695
You can also enable audit for files and (or) folders:
http://technet.microsoft.com/en-us/library/cc771070.aspx
0
 
LVL 47

Assisted Solution

by:Dale Fye (Access MVP)
Dale Fye (Access MVP) earned 250 total points
ID: 39771718
Wow, any number of ways to access a table (form, rowsource of a combo or list, query, report, code).  

Simply renaming the table is likely to break many of your database applications.  

There is no simple way to identify what is being used, by who, at least not with an Access database.  however, the mSysObjects table (usually hidden) contains a DateUpdated field which might be able to help you identify the objects that are least used.

The best method I've used in the past is to create a table that contains a userID, date, and Object fields.  Then, in my forms and reports, I will add code in the form Open event that write to values to this table to track usage.  I would write the formname as one record, then the name of the query or table that is the recordsource for the form as another, and if the query uses more than one table, each of those would require another record.  Would do the same thing for your reports and in your code.
0
Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 39771897
As mentioned above, Total Access Analyzer will analyze the database and provide you with a broad range of reports.

another useful tool is Rick Fishers "Find & Replace".  It will find all instances of a particular value or string in the objects (not the data) in your project, so you can easily identify everywhere a particular table is used.  It will also create cross-references.  This could help you identify where those tables you are interested in are used, and flag where you need to put the code I mentioned above.
0
 
LVL 57
ID: 39771953
+1 on Rick Fisher's utility; it's $37 bucks and well worth the price.

The cross reference will tell you exactly where an object is used, or give you a list of all objects that are not used.

When I inherit a database, I do two or three passes using the cross reference to clean up all the junk.

Jim.
0
 

Author Comment

by:gbnorton
ID: 39771978
I have Ricks Find and Replace.  I'll use it as you've suggested.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Introduction When developing Access applications, often we need to know whether an object exists.  This article presents a quick and reliable routine to determine if an object exists without that object being opened. If you wanted to inspect/ite…
Experts-Exchange is a great place to come for help with solutions for your database issues, and many problems are resolved within minutes of being posted.  Others take a little more time and effort and often providing a sample database is very helpf…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…

867 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

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now