MS Access 对象(表单、报告)显示创建或修改日期

MS Access objects (forms, reports) display created or modified date

参考这个问题: MS Access 2013 对象(表、查询)显示创建或修改日期 马特用这个代码回答:

这是第一次成功。 如何添加到代码中以同时列出表单、报告和宏 - 并显示创建和修改日期?

使用 CurrentProject.All* 集合:AllFormsAllReports;和 AllMacros

下面是即时 window 中的示例:

for each obj in CurrentProject.AllForms : ? obj.Name, obj.DateCreated, obj.DateModified : next
frmClaims     8/11/2015 12:11:46 PM       10/6/2015 1:08:28 PM 
frmInvoices   3/8/2015 5:04:24 PM         10/6/2015 1:08:28 PM 
frmChoosePerson             3/28/2015 1:11:51 PM        2/28/2016 8:29:28 PM 

for each obj in CurrentProject.AllReports : ? obj.Name, obj.DateCreated, obj.DateModified : next
rptPassThruQuery            3/9/2016 1:04:38 PM         3/9/2016 2:23:38 PM 
rptChangeSort 7/27/2015 10:45:38 AM       10/6/2015 1:08:30 PM 

for each obj in CurrentProject.AllMacros : ? obj.Name, obj.DateCreated, obj.DateModified : next
Macro2        6/17/2015 10:21:58 AM       6/17/2015 10:21:58 AM 
Public Function 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
    Dim obj As AccessObject

    strSql = "DELETE * FROM tblCCSObjects"

    Set db = CurrentDb

    db.Execute strSql, dbFailOnError

    Set rs = db.OpenRecordset("tblCCSObjects")

    With rs

        ' tables
        For Each tdf In db.TableDefs
            If Not (tdf.Name Like "*MSys*" Or tdf.Name Like "~*") Then
                .AddNew
                !ObjectType_Order = "1"
                !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_Order = "2"
                !ObjectType = "Query"
                !ObjectName = qdf.Name
                !DateCreated = qdf.DateCreated
                !DateModified = qdf.LastUpdated
                .Update
            End If
        Next

        ' forms
        For Each obj In CurrentProject.AllForms
                .AddNew
                !ObjectType_Order = "3"
                !ObjectType = "Forms"
                !ObjectName = obj.Name
                !DateCreated = obj.DateCreated
                !DateModified = obj.DateModified
                .Update
        Next

        ' reports
        For Each obj In CurrentProject.AllReports
                .AddNew
                !ObjectType_Order = "4"
                !ObjectType = "Reports"
                !ObjectName = obj.Name
                !DateCreated = obj.DateCreated
                !DateModified = obj.DateModified
                .Update
        Next

      ' macros
        For Each obj In CurrentProject.AllMacros
                .AddNew
                !ObjectType_Order = "5"
                !ObjectType = "Macros"
                !ObjectName = obj.Name
                !DateCreated = obj.DateCreated
                !DateModified = obj.DateModified
                .Update
        Next
        End With

    rs.Close
    Set rs = Nothing
    Set db = Nothing

End Function