最初有1000条记录需要评估。现在有40000条记录。请帮忙! 我只是想根据交易日期和开始日期获取交易的周数。
SELECT [1_Webtime_By_Date].Badge,Int(((([1_Webtime_By_Date].Date-Forms![Date Form].StartDate)+1.99)/7)+1) AS Week
FROM 1_Webtime_By_Date
GROUP BY [1_Webtime_By_Date].Badge,Int(((([1_Webtime_By_Date].Date-Forms![Date Form].StartDate)+1.99)/7)+1);
答案 0 :(得分:1)
这是Access使用的编译器的已知问题。在访问97之后,64K段的限制被解除,但是您查询的数据量对于Access来说太多了。下一页提供的一些提示可能有所帮助,但在我看来,您需要使用适当的数据库系统,如MS SQL。如果成本问题,可以使用免费版本(SQL Express)。
ACC: "Out of Memory" or "Query Too Complex" with Query/Report
SQL Server Express Download page
您可能会发现,如果您最终用户使用Access,那么将SQL Server用作数据库并将Access作为前端可以帮助您解决问题。
给出的最佳提示是使用别名来缩短查询的长度并尝试删除嵌套查询:
答案 1 :(得分:0)
我的第一个倾向是在减号之前和之后增加一些空白区域。 我的下一个测试是将表单字段变为DATE类型,并使用类似
的内容 DATEPART(ww,[1_Webtime_By_Date].Date - Forms![Date Form].StartDate ) AS WK