回到DCOUNT的基础

时间:2019-12-22 15:22:47

标签: ms-access access-vba ms-access-2010

试图弄清楚这里的混乱之处:

Dim Count AS string
Count = DCount("F", "tbl_1", "C = '" & .Acc & "'")

问题出在计数的标准部分,我已经在没有标准的情况下进行了测试,并且效果很好。

有没有人跳出来?

收到的错误:

  

条件表达式中的数据类型不匹配

**更新** 从那以后,我发现它可以正常工作,但是id仍然想知道为什么我的原始方法不起作用

count = DCount("F", "tbl_1", "C =" & .Acc)

1 个答案:

答案 0 :(得分:2)

  

我仍然想知道为什么我原来的方法不起作用

在您的原始代码中,您使用的是:

DCount("F", "tbl_1", "C = '" & .Acc & "'")

您说过字段C整数数据类型,因此,我假设.Acc也返回一个整数值。

因此,如果.Acc返回1,则条件表达式将被评估为:

DCount("F", "tbl_1", "C = '1'")

与以下SQL语句等效:

select count(F) from tbl_1 where C = '1'

由于字段C整数数据类型,并且where子句随字符串提供'1' ,这将导致错误:

  

条件表达式中的数据类型不匹配。


在修订后的代码中,DCount表达式的计算方式为:

DCount("F", "tbl_1", "C = 1")

与SQL语句等效,例如:

select count(F) from tbl_1 where C = 1

C子句中为字段where正确地提供一个整数值。