在Access中,如何识别范围之外的日期

时间:2017-05-23 14:46:58

标签: vba date ms-access access-vba ms-access-2010

我在Access中负责一个正在工作的项目,我对此非常不熟悉。我想要做的是创建某种查询或宏或vba代码,查看我设置的表格,其中包含事件发生的日期并引用某个范围(例如,现在为30天),如果是日期发生的事件超出范围,然后将其添加到单独的表中。问题是,某些事件比其他事件更频繁地发生(一些事件每90天发生一次,一些事件每7天发生一次)。

enter image description here

在图片中,事件4多次出现,但我只想看看最近的事件(我已经将数字更改为发生事件的实际名称)。

我已经玩了一些日期代码,我从这个网站得到了记号:

https://support.office.com/en-us/article/Examples-of-using-dates-as-criteria-in-Access-queries-AEA83B3B-46EB-43DD-8689-5FC961F21762

我遇到的另一个问题是我想让它只看最近的事件。我一直在玩这个代码,就像我在另一个帖子上看到的那样:

MS Access query - select most recent date

Select cleaning, Max(Date1) as most_recent
From CleaningLog
Group by Cleaning;

但它一直告诉我存在编译错误,并突出显示“清理”列的名称。

我无法对这两个问题做任何有用的事情。如果有人可以提供帮助,我们将不胜感激!

修改

日期来自此处的表单,用户在该表单中键入事件发生的日期。

enter image description here

1 个答案:

答案 0 :(得分:0)

您的查询应该有效 - 如果您将其复制到新查询的 SQL窗格而不是代码模块(这将导致编译错误)。

如果值确实是文本,请使用CDate将这些值转换为真实日期值。永远不要将日期作为字符串处理,没有例外。