Is there any way I can make Access 2013 display created
and modified date
? Access 2003 used to display those features and can't seem to find any solution to Access 2013?

- 1,157
- 4
- 17
- 30
-
I don't remember such a feature in Access 2003. Do you have a screenshot or (better) a link to some documentation? – Heinzi Apr 19 '16 at 07:44
-
ok just included 2003 screenshot – Curtis Apr 19 '16 at 07:49
-
right-click on object > View Properties? – Matt Hall Apr 19 '16 at 08:01
-
1well that's not a robust solution, when you have hundreds of tables to deal with – Curtis Apr 19 '16 at 08:02
2 Answers
You can right-click the object list header, and do View -> Details. But that's still not a very good overview.
(Oh how I miss the Access 2003 database window...)
A better way is to query the MSysObjects
table, e.g.:
SELECT MSysObjects.Type, MSysObjects.Name, MSysObjects.DateUpdate, MSysObjects.DateCreate
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.Type, MSysObjects.Name;
See here for the object type constants:
Meaning of MsysObjects values -32758, -32757 and 3 (Microsoft Access)
You may also be interested in this free "Database window replacement" add-in:
http://www.avenius.de/index.php?Produkte:DBC2007
-
Thanks, both SQL and add-on are nice solutions, although it's so odd that Microsoft do not provide this feature which is a must. – Curtis Apr 19 '16 at 10:45
If Access hasn't got a baked-in solution and you have a lot of objects to look at, you could always create your own with a table set up something like this:
And then write some VBA to loop through the object collections and write the properties you're interested in to the above table. The example below loops through the Tables and Queries collections, but you could write additional loops for Forms, Reports, etc. (There may even be a simpler way to just loop through all Access objects).
Public Sub CreatedModified()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim tdf As DAO.TableDef
Dim qdf As DAO.QueryDef
Dim strSql As String
strSql = "DELETE * FROM tblCreatedModified"
Set db = CurrentDb
db.Execute strSql
Set rs = db.OpenRecordset("tblCreatedModified")
With rs
' tables
For Each tdf In db.TableDefs
If Not (tdf.Name Like "*MSys*" Or tdf.Name Like "~*") Then
.AddNew
!ObjectType = "Table"
!ObjectName = tdf.Name
!DateCreated = tdf.DateCreated
!DateModified = tdf.LastUpdated
.Update
End If
Next
' queries
For Each qdf In db.QueryDefs
If Not (qdf.Name Like "*MSys*" Or qdf.Name Like "~*") Then
.AddNew
!ObjectType = "Query"
!ObjectName = qdf.Name
!DateCreated = qdf.DateCreated
!DateModified = qdf.LastUpdated
.Update
End If
Next
End With
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub

- 2,412
- 7
- 38
- 62
-
I got an error saying `Item not found in this collection` when the code reaches to `!ObjectType = "Table"` – Curtis Apr 19 '16 at 10:42
-
-
Ok, I'm not sure.. I've tested the code out here and it all works fine. The only thing I can think of is that either the table name or one of the fields in the table is different in the one you've created. – Matt Hall Apr 19 '16 at 12:16
-
sorry didn't realise I had to add the same fields...which is working fine now – Curtis Apr 19 '16 at 12:29