DCount按日期筛选时返回错误的记录计数



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

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

有明显的错误吗?

我们使用MS Access前端作为SQL Server后端

您尝试过以下操作吗:

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

#中封装日期,并始终在VBA中以US方式(mm/dd/yyyy)写入日期:

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

均值>=11月1日。
在这种情况下,SQL Server后端没有影响。

您可能没有对日期进行硬编码,所以请遵循本通用指南。

此外,DCount不需要查找字段:

Dim FilterDate    As Date
Dim FilterDateSql As String
FilterDate = DateSerial(Year(Date), Month(Date), 1)
FilterDateSql = Format(FilterDate, "yyyy/mm/dd")
DCount("*", "[ComplaintsListMaster]", "[ComplaintDate] >= #" & FilterDateSql & "#")

最新更新