0

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

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

有什么明显的错误吗?

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

4

3 回答 3

0

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

此外,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 & "#")
于 2015-11-18T11:50:34.143 回答
0

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

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

表示 >= Nov-1。
在这种情况下,SQL Server 后端没有影响。

于 2015-11-18T08:30:06.533 回答
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.

于 2015-11-18T07:49:51.213 回答