我正在使用2007。
A: DCount("[Name]","[Main]","[Name] = 'Mark'")/
DCount("[Entry]","[Main]","[Entry] = 1")好的,我基本上是在计算使用Mark这个名字的人数,除以我数据库中的条目数=1。这很容易,但我正在尝试应用第三个条件
地点=“芝加哥”
,但是Access不允许我这样做(它找不到表,尽管它在我前面指定的表中)。
DCount("[Name]","[Main]","[Name] = 'Mark' AND [Location]![City] = 'Chicago'")/
DCount("[Entry]","[Main]","[Entry] = 1")我也尝试过在Design视图中使用Where子句过滤城市,但是在上面的计算之后应用了这个条件,所以无论是哪个城市,计算都是相同的。我只需要它来完成芝加哥市的上述计算。
这样的事情在DCount中是可能的吗?
而且,如果你能告诉我如何在对每一个城市分别进行计算的同时,按城市分组,我将是一个快乐的人,但如果有人能告诉我如何用第一种方法来做,我也会非常感激。
谢谢
发布于 2011-06-28 21:18:46
地点是什么?我的答案是基于假设,它指的是一个名为City的字段,该字段位于一个名为Location的表中。
如果这是正确的,我认为您的问题是因为您试图基于一个不属于您告诉DCount使用的域(Main)的字段来指定一个条件。
在微软的文档中,域是“一个字符串表达式,它标识构成该域的一组记录。它可以是不需要参数的查询的表名或查询名。”
因此,如果希望DCount条件引用两个表中的字段,则将以查询形式的表合并为单个“域”。您的查询可能是这样的,"qryMainWithCity":
SELECT m.[Name], m.Entry, m.City_ID, l.City
FROM
Main AS m
INNER JOIN Location AS l
ON m.City_ID = l.City_ID;如果该查询适用于您的情况,您应该能够使用这样的DCount表达式获得所需的内容:
DCount("*","qryMainWithCity","[Name] = 'Mark' AND City = 'Chicago'")发布于 2011-06-28 21:37:26
我只是贴出了和“HansUp”一样的答案。我有一种替代的方法,那就是使用即时记录集查找:
Dim varReturnValue as Variant
varReturnValue = CurrentDB.OpenRecordset("SELECT Main.[Name] FROM Main INNER JOIN Location ON Main.City_ID = Location.City_ID WHERE Main.[Name] = 'Mark' AND Location.City = 'Chicago';")(0)返回返回的记录集中的第一个字段(索引基于零)。这样你就不用保存查询了。
https://stackoverflow.com/questions/6511728
复制相似问题