如何比较创建的MS-Access和表,查询,表单等的上次修改日期?

Edg*_*gar 3 ms-access vba access-vba datemodified

我喜欢在Access 2010数据库中创建和更新表,查询,表单等时创建列表.

从理论上讲,这可以通过一些VBA代码实现,但不幸的是,这段代码显示了错误的信息.我自己测试了它,微软在这里证实了这一点:https://support.microsoft.com/en-us/kb/299554

Access在导航面板上显示正确的修改日期,但似乎无法通过VBA或任何表格访问此信息.前段时间我在互联网上搜索过这个问题,有几个人证实了这个问题,但没有人得到答案.

现在我的问题:有人知道如何从Access导出正确的修改日期信息(显示在导航面板中)?

如果这是不可能的(我目前的研究表明这一点),是否有人知道将一个数据库文件与另一个数据库文件进行比较并显示表格,查询,表格等的所有差异的可靠方法?

这完全是关于Access对象的设计,而不是关于表中存储的任何数据.

Han*_*sUp 5

该链接文章描述了为什么该LastUpdated属性不能为您提供数据库对象(如表单和报表)所需的内容.不幸的是,它没有告诉你,你可以DateModified从适当的CurrentProject集合中使用它们.

例如,请在导航窗格中考虑此窗体的屏幕截图:

显示表单的导航窗格

当引用在Documents集合的形式,LastUpdated并且DateCreated都返回相同的值:

? CurrentDb.Containers("Forms").Documents("Form1").DateCreated
8/20/2012 10:51:07 PM 
? CurrentDb.Containers("Forms").Documents("Form1").LastUpdated
8/20/2012 10:51:07 PM
Run Code Online (Sandbox Code Playgroud)

但是,DateModified对于CurrentProject.AllForms集合中的相同表单,将为您提供导航窗格中显示的值:

? CurrentProject.AllForms("Form1").DateModified
7/1/2015 6:47:40 AM 
Run Code Online (Sandbox Code Playgroud)

请注意,您也可以DateCreated通过AllForms:

? CurrentProject.AllForms("Form1").DateCreated
8/20/2012 10:51:07 PM 
Run Code Online (Sandbox Code Playgroud)

其他CurrentProject系列包括:AllMacros; AllModules; 和AllReports.请注意,模块一起保存,以便DateModified显示项目上次保存的时间.这意味着每个模块将显示相同的时间,与导航窗格中显示的相同.