2015-07-11 56 views
3

我喜欢在Access 2010数据库中创建和更新表,查询,表单等时创建一个列表。如何比较表,查询,表单等创建和最后修改的MS-Access日期?

从理论上讲这是可能的一个小VBA代码,但不幸的是这个代码显示了错误的信息。我自己进行了测试,并且在此处由Microsoft确认:https://support.microsoft.com/en-us/kb/299554

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

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

如果这是不可能的(我目前的研究表明这一点)没有人知道一个可靠的方法来一个数据库文件的数据进行比较,并显示在表,查询,表格等所有的区别是什么?

这是所有关于访问对象的设计,而不是对表中存储任何数据。

回答

5

该链接的文章介绍了为什么LastUpdated财产不会给你你想要的数据库对象,如窗体和报表。不幸的是,它并没有告诉你,你可以使用适当的CurrentProject集合中的DateModified

例如,考虑在导航窗格形式的这个屏幕捕捉:

Navigation pane showing a form

当引用在Documents集合的形式,LastUpdatedDateCreated都返回相同的值:

? 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 

但是DateModified对于CurrentProject.AllForms收集中的相同表格离子赋予您的显示在导航窗格中的值:

? CurrentProject.AllForms("Form1").DateModified 
7/1/2015 6:47:40 AM 

注意你也可以通过DateCreatedAllForms

? CurrentProject.AllForms("Form1").DateCreated 
8/20/2012 10:51:07 PM 

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

+0

谢谢,这会让我的生活变得更轻松。我想知道为什么MS不发布这些重要信息。 – Edgar