该项目的目标是将所有Access表迁移到SQL,但继续对象(如报表,查询,表单和宏),直到我们迁移到.NET框架。将Access表迁移到SQL。更新查询不起作用
它似乎工作的大部分,但不是一些更新查询。
这个特定的更新查询具有UPDATE语句,后面跟着一个像这样的连接语句。
UPDATE (tblBid INNER JOIN Plan ON tblBid.Id = Plan.BidId)
SET ....
错误信息读取,“操作必须是一个可更新的查询”,在T-SQL
我知道,表要更新如下UPDATE,不能连接语句。那么,如何修复Access更新查询以使它们与SQL兼容?很明显,SQL不喜欢Access更新查询。
编辑:
我把下面劳伦斯的建议和更新SQL视图(抱歉,我不能简化它。)查询。
UPDATE [Plan Assemblies]
SET [Plan Assemblies].[Description] = ItemTemp.[Description]
FROM ([Bid Header] INNER JOIN [Plan]
ON [Bid Header].BidID = [Plan].BidID) INNER JOIN (ItemTemp INNER JOIN [Plan Assemblies]
ON ItemTemp.ID = [Plan Assemblies].AssyID) ON [Plan].PlanID = [Plan Assemblies].PlanID
WHERE [Bid Header].BidID = 1
查询在SQL中执行。在Access中,当我尝试将它保存在SQLView中时,我在查询表达式ItemTemp [Description]中得到了“语法错误缺失操作符”。因此,现在Access对于SQL很满意的表达式感到不满。
现实情况是T-SQL和VBA是**不相同的。您很可能需要开发2个独立的SQL语句;一个用于Access,一个用于SQL Server。 – 2014-09-13 15:12:57