试图从名为"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 & "#")