我的 Access 数据库存在以下问题:
我有 3 个表,分别是 tblComponents、tblErrors 和 linkComponentsErrors。这是一种多对多关系,这意味着一个组件可以有多个错误,而一个错误可以有多个组件。这些 a 与 linkComponentsErrors 中的primaryKey(tblComponents.componentID 和 tblErrors.errorID)链接。两个表都有一个名称字段
tblComponents / tblErrors / linkComponentsErrors
|compID|compname| |errID|errname| |compID|errID|
+------------+ +------------+ +------------+
| 1 | HDD-300 | | 1 | E101 | | 1 | 1 |
+------------+ +------------+ +------------+
| 2 | SSD-100 | | 2 | E404 | | 1 | 2 |
+------------+ +------------+ +------------+
| 3 | CPU-i7 | | 3 | E123 | | 2 | 2 |
+------------+
| 2 | 3 |
+------------+
| 3 | 3 |
对于串联,我使用 VBA 代码艾伦·布朗
当我使用串联进行此查询时
SELECT tblComponents.compName, ConcatRelated("errorID", "linkComponentsErrors", "compID = " &[linkComponentsErrors].[compID]) FROM tblComponents;
我明白了:
|compName|Expr|
+------------+
| HDD-300 | 1, 2 |
+------------+
| SSD-100 | 2, 3 |
+------------+
| CPU-i7 | 3 |
+------------+
但我想要的是这样的:
|compName|Expr|
+------------+
| HDD-300 | E101, E404 |
+------------+
| SSD-100 | E404, E123 |
+------------+
| CPU-i7 | E123 |
+------------+
我迷失在 Concat 函数中的 SQL 语法中,并连接到错误的名称。如果您知道这个问题的解决方案,我将非常高兴。