[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

When and who accessed an Access table

Posted on 2014-01-10
6
Medium Priority
?
294 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 39

Accepted Solution

by:
PatHartman earned 1000 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 40

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 48

Assisted Solution

by:Dale Fye
Dale Fye earned 1000 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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 48

Expert Comment

by:Dale Fye
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 58
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

On Demand Webinar: Networking for the Cloud Era

Ready to improve network connectivity? Watch this webinar to learn how SD-WANs and a one-click instant connect tool can boost provisions, deployment, and management of your cloud connection.

Question has a verified solution.

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

You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
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.
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…
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.

656 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