按日期过滤时,DCount返回错误的记录数

时间:2015-11-17 21:01:36

标签: vba ms-access access-vba dcount

尝试从名为" ComplaintsListMaster"的表中获取所有记录的计数。有一个" ComplaintDate"大于2015年1月11日。正确的值大约为70.但是当我使用下面粘贴的dcount时,它返回3951,这几乎是表中的每条记录。

DCount("[ID]", "[ComplaintsListMaster]", "[ComplaintDate] >= 11/1/2015")

有任何明显的错误吗?

我们将MS Access前端用于SQL Server后端

3 个答案:

答案 0 :(得分:0)

您是否尝试过以下操作:

DCount("[ID]", "[ComplaintsListMaster]", "[ComplaintDate] >= #" & 11/1/2015 & "#")

日期包含在#date#个数字符号中,其方式与单引号/撇号'string'中字符串的方式类似。

我不确定为什么你需要等于或大于符号=>11/1/2015。我个人会使用>10/1/2015

DCount("[ID]", "[ComplaintsListMaster]", "[ComplaintDate] > #" & 10/1/2015 & "#")

但两者都应该有效,所以我猜是个人偏好。

  

修改

我刚刚意识到我假设dd / mm / yyyy并且你有可能使用mm / dd / yyyy,所以在这种情况下,我的答案是>10/31/2015

答案 1 :(得分:0)

将日期包含在#中,并始终以美国方式(mm / dd / yyyy)在VBA中写下您的日期:

DCount("[ID]", "[ComplaintsListMaster]", "[ComplaintDate] >= #11/1/2015#")

表示> = 11月1日 在这种情况下,SQL Server后端没有任何影响。

答案 2 :(得分:0)

您可能没有硬编码的日期,因此请遵循此一般指南。

此外,AllSettings_cbx无需查询字段:

DCount