Query to show when an object was last updated/modified

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

LVL 1
Lawrence SalvucciInformation Technology ManagerAsked:
Who is Participating?
 
Gustav BrockConnect With a Mentor CIOCommented:
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
 
Lawrence SalvucciInformation Technology ManagerAuthor Commented:
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
 
Gustav BrockCIOCommented:
No. You can list all the properties of an object but for forms, a LastChangedDate is not among them.

/gustav
0
Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

 
Jim Dettman (Microsoft MVP/ EE MVE)Connect With a Mentor PresidentCommented:
<<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
 
Lawrence SalvucciInformation Technology ManagerAuthor Commented:
And MS just doesn't care to fix it I take it? I wish there was another way to get that data.
0
 
Jim Dettman (Microsoft MVP/ EE MVE)Connect With a Mentor PresidentCommented:
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
 
Jim Dettman (Microsoft MVP/ EE MVE)PresidentCommented:
<<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
 
Lawrence SalvucciInformation Technology ManagerAuthor Commented:
Thank you for that, Jim. Unfortunately I can't use that since it's not truly accurate.
0
 
Lawrence SalvucciInformation Technology ManagerAuthor Commented:
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
 
PatHartmanCommented:
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
 
Lawrence SalvucciInformation Technology ManagerAuthor Commented:
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
 
Gustav BrockCIOCommented:
Seems like my old article was meant for you:

Deploy and update a Microsoft Access application in a Citrix environment

/gustav
0
 
Lawrence SalvucciInformation Technology ManagerAuthor Commented:
HA! I will read that thoroughly! Thank you for that!
0
 
Jim Dettman (Microsoft MVP/ EE MVE)PresidentCommented:
<<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
 
Lawrence SalvucciInformation Technology ManagerAuthor Commented:
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
 
Jim Dettman (Microsoft MVP/ EE MVE)PresidentCommented:
<< 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
 
Lawrence SalvucciInformation Technology ManagerAuthor Commented:
I will close this one out and open another one in a little bit. Thanks Jim.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.