我正在尝试更新我的表中的列Inputcounts称为连接一个名为InputConcatenates的查询,该查询具有一个也称为连接的列。我正在运行带有字段名称的更新查询,将表名称连接为InputCounts,将字段更新为[InputConcatenates]。[Concatenate]。但每次运行查询时,它都会回退0条记录。我的语法错了吗?
更新查询SQL:
UPDATE InputCounts INNER JOIN InputConcatenate
ON InputCounts.CONCATENATE = InputConcatenate.CONCATENATE
SET InputCounts.CONCATENATE = [InputConcatenate].[CONCATENATE];
InputConcatenate查询SQL:
SELECT InputCounts.FLEET, InputCounts.AMMs, [FLEET] & [AMMs] AS CONCATENATE
FROM InputCounts;
答案 0 :(得分:1)
您报告此查询可以完成您想要的...
UPDATE InputCounts
SET CONCATENATE = [FLEET] & [AMMs]
WHERE CONCATENATE Is Null;
这可能没问题。但是,在您执行CONCATENATE
之前,UPDATE
不会更新,并且在FLEET
或AMMs
}的更改中未更新(之前已收到值) p>
确定CONCATENATE
是否确实需要作为表格中的字段存在。您可以使用查询在需要时派生它:
SELECT *, FLEET] & [AMMs] AS CONCATENATE
FROM InputCounts;
通过查询,CONCATENATE
始终是最新的。
如果您的数据库是ACCDB格式且Access版本是> = 2010,则另一种可能性是在表格的设计中将CONCATENATE
设为“计算字段”类型:
如果您希望只要FLEET或AMM为空,CONCATENATE
为空,请将字段的 Expression 属性更改为[FLEET] + [AMMs]
计算字段的优点是Access可以自动更新其值,而无需您的进一步努力(如执行UPDATE
)。
缺点是您无法索引计算字段。这意味着它不适合加入,WHERE
条件,ORDER BY
等。您必须确定它是否适合您的应用程序。 : - )