更改访问查询中的外键值
Change Foreign Key Value in Access Query
这是我想要完成的一个小例子。
Table 1: 人
- ID
- 名字
- HairColor_ID
Table 2:头发颜色
- ID
- 颜色
我有查询 1,我在其中给它一个颜色参数 (c),它 return 是头发颜色的 ID
SELECT HairColor.ID
FROM HairColor
WHERE (([HairColor].[Color]=[c]));
现在在查询 2 中,我有人物 table 和查询 1。在该字段中,我想选择人物 ID 2 并根据查询 1 结果更改其 HairColor_ID (应该 return 一个 ID),查询 2 如下:
UPDATE Person INNER JOIN Query1 ON Person.ID = Query1.ID SET
Person.HairColor_ID = [Query1]![ID]
WHERE (((Person.ID)=2));
我假设 [Query1]![ID] return 是 ID。
基本上我想做的就是通过将颜色值作为参数来更新 HairColor_ID。我该怎么做?
您正在尝试通过 Person.ID = Query1.ID 将 Person table 加入 Query1,但 Query1.ID 不是人的 ID,而是头发颜色。 ..
此查询应将人 2 的 HairColor 更改为您作为参数 c:
输入的颜色
UPDATE Person, Query1 SET Person.HairColor_ID = [Query1].[ID]
WHERE (((Person.ID)=2));
基本上你想要的是更新 Person
和 HairColor
之间的 CROSS JOIN
。你不需要 Query1
,对我来说,至少没有它,机制会更清晰。
PARAMETERS c Text ( 255 );
UPDATE Person, HairColor
SET Person.HairColor_ID = [HairColor].[ID]
WHERE Person.id=2 AND HairColor.Color=[c];
这是我想要完成的一个小例子。
Table 1: 人
- ID
- 名字
- HairColor_ID
Table 2:头发颜色
- ID
- 颜色
我有查询 1,我在其中给它一个颜色参数 (c),它 return 是头发颜色的 ID
SELECT HairColor.ID
FROM HairColor
WHERE (([HairColor].[Color]=[c]));
现在在查询 2 中,我有人物 table 和查询 1。在该字段中,我想选择人物 ID 2 并根据查询 1 结果更改其 HairColor_ID (应该 return 一个 ID),查询 2 如下:
UPDATE Person INNER JOIN Query1 ON Person.ID = Query1.ID SET
Person.HairColor_ID = [Query1]![ID]
WHERE (((Person.ID)=2));
我假设 [Query1]![ID] return 是 ID。
基本上我想做的就是通过将颜色值作为参数来更新 HairColor_ID。我该怎么做?
您正在尝试通过 Person.ID = Query1.ID 将 Person table 加入 Query1,但 Query1.ID 不是人的 ID,而是头发颜色。 ..
此查询应将人 2 的 HairColor 更改为您作为参数 c:
输入的颜色UPDATE Person, Query1 SET Person.HairColor_ID = [Query1].[ID]
WHERE (((Person.ID)=2));
基本上你想要的是更新 Person
和 HairColor
之间的 CROSS JOIN
。你不需要 Query1
,对我来说,至少没有它,机制会更清晰。
PARAMETERS c Text ( 255 );
UPDATE Person, HairColor
SET Person.HairColor_ID = [HairColor].[ID]
WHERE Person.id=2 AND HairColor.Color=[c];