我有两个表:“ PartNumberX”和“ MasterPartTable”。我的最终目标是使用查询从“ MasterPartTable”中提取某些字段,以获取唯一零件号的列表(“ MasterPartTable”具有重复项)。除了使用该SELECT DISTINCT
方法的一个字段,我能够成功获取所需的所有字段。不幸的是,最后一栏“零件名称”是草率地创建的(由其他人创建),并且某些零件名称带有逗号,例如,相同的零件编号可能不相同。“装配体”和“装配体”都具有相同的零件号,所以我只想要其中之一。我的想法是,我可以将良好的数据插入表中,然后运行使用DLookup
使用“ PartNumberX”中的零件号来查找零件名,以便从“ MasterPartTable”中查找相应的零件名,但我似乎无法使其正常工作。
当我使用下面的更新查询时,它将返回与“ PartNumberX”中相同数量的空白字段。
UPDATE PartNumberX
SET PartNumberX.[Part Name] = DLookUp("[MasterPartTable].[Part_Name]","MasterPartTable","MasterPartTable.Part_Number = PartNumberX.Part_Number");
我是否在这里缺少某些东西,或者有其他方法可以做到这一点?我知道我可以使用VBA并逐个滚动每个字段来执行此操作,但是我希望查询速度更快。
编辑-
使用HansUp的第二种方法,我得到了以下信息:
UPDATE MasterpartsTable INNER JOIN PartNumberX ON MasterpartsTable.Part_Number=
PartNumberX.Part_Number
SET PartNumberX.[Part Name] = [MasterpartsTable].[Part_Name];
这将导致查询为空。
编辑2-
我实际上只是运行了该死的东西,它运行得非常好!我不明白为什么预览为空,但是不管它如何工作。
该DLookup
标准选项...
"MasterPartTable.Part_Number = PartNumberX.Part_Number"
...引用字段的名称(PartNumberX.Part_Number
)。您需要在那里的字段值而不是其名称。
使用SELECT
查询来计算逻辑和语法。返回正确的数据后,您可以将其改编为UPDATE
查询。
IfPart_Number
是数字数据类型...
SELECT
[Part Name],
Part_Number,
DLookUp(
"Part_Name",
"MasterPartTable",
"Part_Number = " & Part_Number
) AS master_part_name
FROM PartNumberX;
如果Part_Number
是文本数据类型,请使用引号...
"Part_Number = '" & Part_Number & "'"
但是,我怀疑您可以DLookup
通过加入这两个表来避免。如果此SELECT
查询正确对齐了数据,请将其转换为UPDATE
:
SELECT
p.[Part Name],
p.Part_Number,
m.Part_Number,
m.Part_Name
FROM
PartNumberX AS p
INNER JOIN MasterPartTable AS m
ON p.Part_Number = m.Part_Number;
一个UPDATE
based onINNER JOIN
可能比该DLookup
版本快得多,尤其Part_Number
是在索引连接字段()的情况下。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句