选择查询原因"expression is too complex to evaluate or there is an error"



最初有 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);

这是 Access 使用的编译器的已知问题。Access 97 之后取消了 64K 段的限制,但您查询的数据量对于 Access 来说实在是太多了。以下页面上提供了一些提示可能会有所帮助,但在我看来,您需要使用适当的数据库系统,例如MS SQL。有一个免费版本(SQL Express),如果成本是问题所在。

ACC:"内存不足"或"查询太复杂"与查询/报告

SQL Server Express 下载页面

您可能会发现,如果您与最终用户使用 Access 相关联,则使用 SQL Server 作为数据库和 Access 作为前端可能会帮助您解决问题。

给出的最佳提示是使用别名来缩短查询的长度并尝试删除嵌套查询:

访问 SQL: FROM 子句

我的第一个倾向是在两个减号之前和之后添加一些空格。我的下一个测试是将表单字段转换为 DATE 类型,并使用类似

     DATEPART(ww,[1_Webtime_By_Date].Date - Forms![Date Form].StartDate ) AS WK

相关内容

最新更新