Solved

Query to show when an object was last updated/modified

Posted on 2016-08-24
17
22 Views
Last Modified: 2016-08-24
I am trying to show in my query when an object (form, query, report, table, etc) was last modified. I am using this query but the "DateUpdate" field doesn't seem accurate. There are forms that I modified yesterday but still show the date as 2014 when it was last modified. Is there another place where I can pull this info instead of using this query source? It doesn't seem to be accurate and I don't get why either.

SELECT MSysObjects.Type, MSysObjects.Name, MSysObjects.DateUpdate, MSysObjects.DateCreate, MSysObjects.Connect, MSysObjects.Database, MSysObjects.Owner
FROM MSysObjects
WHERE (((MSysObjects.Type)<>2 And (MSysObjects.Type)<>3 And (MSysObjects.Type)<>-32757) AND ((Left([Name],1))<>'~') AND ((Left([Name],4))<>'Msys'))
ORDER BY MSysObjects.DateUpdate DESC , MSysObjects.DateCreate DESC;

Open in new window

0
Comment
Question by:Lawrence Salvucci
  • 8
  • 5
  • 3
  • +1
17 Comments
 
LVL 49

Accepted Solution

by:
Gustav Brock earned 250 total points
Comment Utility
It is correct, that form updates are not recorded this way while, say, queries are.

Many have observed this behaviour through the years, but as far as I know, there is no solution.
You'll have to find other methods.

/gustav
0
 
LVL 1

Author Comment

by:Lawrence Salvucci
Comment Utility
Do you know another method to get the actual modified date for any objects? I don't know of any other hence why I posted this question.
0
 
LVL 49

Expert Comment

by:Gustav Brock
Comment Utility
No. You can list all the properties of an object but for forms, a LastChangedDate is not among them.

/gustav
0
 
LVL 57

Assisted Solution

by:Jim Dettman (Microsoft MVP/ EE MVE)
Jim Dettman (Microsoft MVP/ EE MVE) earned 250 total points
Comment Utility
<<No. You can list all the properties of an object but for forms, a LastChangedDate is not among them.>>

 It's part of the Document Properties, but still, the last modified date cannot be relied on as gustav said.

It's been working on and off for a number of years and as a result, no one ever relies on it.

Jim.
0
 
LVL 1

Author Comment

by:Lawrence Salvucci
Comment Utility
And MS just doesn't care to fix it I take it? I wish there was another way to get that data.
0
 
LVL 57

Assisted Solution

by:Jim Dettman (Microsoft MVP/ EE MVE)
Jim Dettman (Microsoft MVP/ EE MVE) earned 250 total points
Comment Utility
FYI:

Sub DocumentModified()
      Dim dbs As Database, ctr As Container, doc As Document

      ' Return reference to current database.
      Set dbs = CurrentDb
      ' Return referenct to Forms container.
      Set ctr = dbs.Containers!Forms
      ' Enumerate through Documents collection of Forms container.
      For Each doc In ctr.Documents
            ' Print Document object name and value of LastUpdated property.
            Debug.Print doc.Name; "      "; doc.LastUpdated
      Next doc
      Set dbs = Nothing

End Sub
0
 
LVL 57

Expert Comment

by:Jim Dettman (Microsoft MVP/ EE MVE)
Comment Utility
<<And MS just doesn't care to fix it I take it? I wish there was another way to get that data.>>

 That is more or less correct.   They've taken several stabs at it, but so few use the field, when it breaks it's not a high priority.

 Typically where it gets used is in conjunction with source control, and due to the name of Access, it's rare that more than one developer works on an app at one time.

 So source control is another thing with Access that they tried a few times with and then gave up on it.

Jim.
0
 
LVL 1

Author Comment

by:Lawrence Salvucci
Comment Utility
Thank you for that, Jim. Unfortunately I can't use that since it's not truly accurate.
0
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 1

Author Comment

by:Lawrence Salvucci
Comment Utility
Lovely. I wanted to use it so I knew which objects I've updated recently in my beta DB so I can easily just import those into my live DB instead of having to go through all the objects to see which ones I've updated, etc. I have 1307 objects in my DB so I was hoping to use that date field. Oh well. I'll have to find another way to do this.
0
 
LVL 34

Expert Comment

by:PatHartman
Comment Utility
If you are the only developer, you don't need to merge objects.  As long as the application is properly split, you can make changes to your copy of the FE and when they are ready to be distributed, you replace the production copy of the FE.  Then your distribution procedure will pull the updated version the next time a user clicks on his shortcut.

I use a .bat file for distribution.  The users have a shortcut that points to a batch file on the server.  The batch file copies the production copy of the FE to the user's C: drive and then opens it.  This way, every time the user opens the FE, he gets a fresh copy.  There are more sophisticated methods that only get new copies when a change was made but I find that the FE size is small enough that just giving them a new copy each time doesn't slow down the app and it means they will never have to compact the FE.

You could also look into the tool for comparing databases offered at the FMSINC website.
0
 
LVL 1

Author Comment

by:Lawrence Salvucci
Comment Utility
I like the idea of using the .bat file. Could you maybe share how you have that set up? The problem I have with replacing the FE is that the beta copy that I use on my laptop to build and update objects isn't linked to the live BE. I use a BE beta copy on my laptop that is an exact copy of the live BE. It just runs faster if I have the beta copies of both the FE & BE on my laptop. So every time I replace the live FE I need to relink the tables to the live BE. And then I distribute the new FE to all the users. We use a Citrix environment here so all the FE's are actually stored on the citrix server instead of the users actual desktops & laptops. It's just easier for deployment because then I can just replace all the user FE's without having to wait for users to log in and start up their computers, etc. We don't have any performance issues with the FE's being on the citrix server either.

I would love some input on how to streamline this process from using my beta FE & BE to replacing the live FE and relinking the tables to the live BE.
0
 
LVL 49

Expert Comment

by:Gustav Brock
Comment Utility
Seems like my old article was meant for you:

Deploy and update a Microsoft Access application in a Citrix environment

/gustav
0
 
LVL 1

Author Comment

by:Lawrence Salvucci
Comment Utility
HA! I will read that thoroughly! Thank you for that!
0
 
LVL 57

Expert Comment

by:Jim Dettman (Microsoft MVP/ EE MVE)
Comment Utility
<<I would love some input on how to streamline this process from using my beta FE & BE to replacing the live FE and relinking the tables to the live BE.>>

The other way to do that is to use a "Launcher" app to execute the DB.  Something along the lines of:

http://autofeupdater.com/

  Or you can do your own as gustav has shown.

 As far as relinking, the way to do that is at app startup, check a link, and if broken, prompt the user for the location of the DB.   There are lots of relinking code out there that does this.   One such can be found here:

http://www.jstreettech.com/downloads.aspx

Jim.
0
 
LVL 1

Author Comment

by:Lawrence Salvucci
Comment Utility
Let me digest everything and I will post back. This question has taken a different turn so not sure if I should post this as a new question or not. I will post back shortly. Thank you for all your input!
0
 
LVL 57

Expert Comment

by:Jim Dettman (Microsoft MVP/ EE MVE)
Comment Utility
<< so not sure if I should post this as a new question or not.>>

 That would be best.  This one should be closed off and I should have said that in my last comment rather than posting what I did.

Jim.
0
 
LVL 1

Author Comment

by:Lawrence Salvucci
Comment Utility
I will close this one out and open another one in a little bit. Thanks Jim.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

This article is a continuation or rather an extension from Cascading Combos (http://www.experts-exchange.com/A_5949.html) and builds on examples developed in detail there. It should be understandable alone, but I recommend reading the previous artic…
I see at least one EE question a week that pertains to using temporary tables in MS Access.  But surprisingly, I was unable to find a single article devoted solely to this topic. I don’t intend to describe all of the uses of temporary tables in t…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

772 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

11 Experts available now in Live!

Get 1:1 Help Now