3

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?enter image description here

Curtis
  • 1,157
  • 4
  • 17
  • 30

2 Answers2

4

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

Community
  • 1
  • 1
Andre
  • 26,751
  • 7
  • 36
  • 80
  • 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
2

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:

enter image description here

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
Matt Hall
  • 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
  • Have you created the table shown in the first screenshot? – Matt Hall Apr 19 '16 at 11:41
  • 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