首页 > 解决方案 > 回到 DCOUNT 的基础

问题描述

试图找出我在这里搞砸的地方:

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

问题在于计数的标准部分,我已经在没有标准的情况下进行了测试,它工作正常。

有什么东西跳出来给任何人吗?

收到的错误:

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

** 更新 ** 我发现这很好用,但我仍然想知道为什么我的原始方法不起作用

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

标签: vbams-accessms-access-2010

解决方案


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

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

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子句与string '1'一起提供,这将导致错误:

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


在修改后的代码中,DCount表达式将被评估为:

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

这相当于一条 SQL 语句,例如:

select count(F) from tbl_1 where C = 1

正确地为子句中的字段C提供where数值


推荐阅读