【问题标题】:In Access, how to Identify Dates Outside of a Range在 Access 中,如何识别范围之外的日期
【发布时间】:2023-04-09 21:30:01
【问题描述】:

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

在图片中,事件 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;

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

我无法为这两个问题提供任何有用的东西。如果有人可以提供帮助,将不胜感激!

编辑

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

【问题讨论】:

  • Date1的类型是文本还是日期?
  • @ErikvonAsmuth 它来自不同的形式,所以我认为它是文本。我更新了描述。

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


【解决方案1】:

您的查询应该可以工作 - 如果您毕竟将其复制到新查询的 SQL 窗格 中,而不是复制到代码模块中(这是您会遇到编译错误的地方)。

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

【讨论】:

  • 谢谢,我在 vba 中找到了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
相关资源
最近更新 更多