无特定条件的访问中的DCount功能

时间:2015-07-27 16:54:52

标签: ms-access access-vba dcount

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

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

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

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

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

我还需要查看报告中的所有记录,并计算每个匹配ID与不同NH的数量,以便我可以标记不同的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;

1 个答案:

答案 0 :(得分:0)

使用聚合查询和条件格式

创建单独的查询以获取每个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

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

<强>参考