You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access 2010筛选4年前日期查询遇参数弹窗:求修改方案

搞定Access 2010里DATEADD弹框要输入year的问题

嘿,我知道你现在遇到的麻烦——运行SQL时弹出要输入year的对话框,这其实是Access的DATEADD函数语法和你写的不匹配导致的。

首先说核心问题:Access里的DATEADD,第一个参数(也就是要加减的时间单位)必须是带引号的字符串,而且年份的正确写法是"yyyy",不是你用的yy。另外,Access里获取当前日期的标准函数是Date(),虽然DATE()有些时候能凑合用,但还是用标准写法更稳妥。

另外还要提醒你:你说要筛选“距今4年以上”的日期,那应该是日期比4年前的今天更早对吧?那你原来的>=写反了,应该改成<=——不然你筛出来的是最近4年的记录,刚好和需求相反。

给你改好的完整SQL代码:

SELECT * 
FROM ([Module] INNER JOIN Teilnahme ON Module.ID = Teilnahme.Modul) 
INNER JOIN Mitarbeiter ON Teilnahme.[Mitarbeiter-E-Mail] = Mitarbeiter.E_Mail 
WHERE (((Module.Name)="ISM Forum") AND Teilnahme.Teilnahmedatum <= DATEADD("yyyy", -4, Date()));

几个关键修改点:

  • 把DATEADD(yy,-4,DATE())改成DATEADD("yyyy", -4, Date()):给时间单位加上双引号,用Access认可的"yyyy"作为年份间隔符,同时换成标准的Date()函数获取当前日期。
  • 把条件里的>=换成<=:确保筛选的是4年之前的旧记录,符合你“距今4年以上”的要求。

这样改完之后,就不会再弹出输入year的对话框了,查询也能准确拿到你要的数据~

内容的提问来源于stack exchange,提问作者najre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:57:21