无特定条件访问中的DCount函数

DCount function in access without specific condition

我正在尝试获取访问报告以确定文本字段 (NH) 是否与同一 ID 不匹配。例如,ID 179 有两行,但每个 NH 不同(12345 和 12346)。我正在尝试使用 DCount 来计算 NH 不匹配的 ID(如果它是相同的 ID)但我无法弄清楚。

这是我的代码示例: 这应该得到匹配的 ID,例如 179 和 179,并检查 NH 以查看它们是否相同,如果不相同,则 return 计数。

CheckValue = DCount([ID], "vTestQuery", "[NH] <> '" & [NH] & "'" And "[ID] ='" & [ID] & "'")

如果 CheckValue 有实际值,这会为我设置的条件格式提供 Me.txtColor 的值。

If (CheckValue > 0) Then
Me.txtColor = CheckValue

我还需要它遍历报告中的所有记录并计算每个具有不同 NH 的匹配 ID,以便我可以标记不同的 NH。

有人可以让我知道我是否在正确的轨道上,如果是的话,可以解决我的困境。

非常感谢!

第一次编辑

示例数据:

+-----+------------+------------+------------+-------------+
| ID  | FullName   | DateOfServ | AccountNum | NoteH       |
+-----+------------+------------+------------+-------------+
| 179 | Test, Jane | 8/1/2015   | 458585     | AAA-1111111 |
| 180 | Test, Paul | 8/1/2015   | 458586     | AAA-2222222 |
| 181 | Test, John | 8/2/2015   | 458587     | AAA-3333333 |
| 214 | Test, Alex | 8/3/2015   | 458588     | AAA-4444444 |
| 214 | Test, Alex | 8/3/2015   | 458588     | AAA-4444445 |
| 215 | Test, Alex | 8/3/2015   | 458589     | AAA-5555555 |
| 215 | Test, Alex | 8/3/2015   | 458589     | AAA-5555555 |
+-----+------------+------------+------------+-------------+

所以我需要报告做的是为匹配但具有不同 NH 的 ID 突出显示或更改文本颜色例如记录 214 有两条记录,除了 NoteH 之外所有数据完全相同,我需要两者那些要突出显示或更改文本的 NoteH。我把有问题的 NoteH 都加粗了。让我知道这是否有帮助。

第二次编辑

所以查询适用于所有具有重复 NoteH 的重复 ID,但如果 NoteH 不同,它仍然只注册一个 ID。我添加了一个 IDCount 来显示查询如何将每个 214 ID 注册为不同的,因为不同的 NoteH。

结果如下:

+-----+------------+---------+
| ID  | NoteCount  | IDCount |
+-----+------------+---------+
| 214 | 1          | 1       |
+-----+------------+---------+
| 214 | 1          | 1       |
+-----+------------+---------+
| 212 | 2          | 2       |
+-----+------------+---------+

我需要一种方法让报告识别出 214 是一个重复字段,但 NoteH 不一样。它真的很接近工作你建议的其他一切都很好!!!

第三次编辑

SELECT May.ID, Count(May.ID) AS IDCount, FROM May INNER JOIN 
Count(CodeRyteCodingResults.[Note Handle]) AS NoteCount
CodeRyteCodingResults ON May.[Accession #] =
CodeRyteCodingResults.[Accession Number]
GROUP BY May.ID;

使用聚合查询和条件格式

创建单独的查询以获取每个 ID 的唯一注释计数。它看起来像这样(我使用了两个查询):

UniqueNotesQuery

SELECT ID, NoteH
FROM BaseTable
GROUP BY ID, NoteH

NoteCountsQuery(这个查询第一个)

SELECT ID, Count(NoteH) AS NoteCount
FROM UniqueNotesQuery
GROUP BY ID;

然后加入此作为您的报告查询的一部分。它看起来像这样:

SELECT BaseTable.*, NoteCountsQuery.NoteCount
FROM BaseTable INNER JOIN NoteCountsQuery
ON BaseTable.ID = NoteCountsQuery.ID

在您的报告中,在文本框的条件格式中编写规则。像这样:

[NoteCount] > 1

上面的这些查询只是从头开始编写的,因此未经测试,您需要为您的项目充实它们。

参考资料: