更新查询的MS Access SQL错误

时间:2015-04-24 21:04:45

标签: sql sql-server ms-access

致力于在SQL Server数据库和MS Access之间链接数据。现在有人正在手动计算SQL数据库报告中的数据,并将其输入Access以在Access中运行其他报告。

我创建了一个传递查询,将相关信息从SQL数据库中提取到一个访问表中(一切正常)

现在我需要使用从SQL传递中检索的数据更新现有的Access表。由于各种原因,我尝试了许多不同的查询。以下是最新查询的示例,它将为我提供所需内容。如果我在SQL Server中设置沙箱并运行它MSSQL Management Studio,但无法在访问

中工作,则此方法有效
UPDATE JT 
SET    JT.ContractAmt = SBD.TotalSum 
FROM   JobTable_TEST AS JT
INNER JOIN (
             SELECT Sum( Main.amt ) as TotalSum, Main.job 
             FROM  Main 
             GROUP BY Main.job
           ) AS SBD 
ON SBD.job = JT.JobNumber 

在Access the Above中生成以下错误"查询表达式中的语法错误(缺少运算符)。

尝试使用SQL Passthrough运行更新查询后,

更新

我更新了我的查询,直接从建议的Passthrough SQL语句执行此操作,并收到以下错误。

ODBC - 调用失败。

[Microsoft] [SQL Server Native Client 11.0] [SQL Server]无效的对象名称' TableName'。(#208)

以下是我使用的传递查询的样子。

UPDATE AccessTable
SET AccessTable.amt = SQLResult.Total
FROM TableName AS AccessTable
    INNER JOIN ( SELECT SUM( SQLTableA.amt) as Total, SQLTableA.job
                 FROM SQLTableA 
                 LEFT OUTER JOIN SQLTableB ON (SQLTableA.company = SQLTableB.company) 
                                            AND (SQLTableA.job = SQLTableB.job) 
                 GROUP BY SQLTableA.job
                ) AS SQLResult
ON SQLResult.job = AccessTable.JobNum

希望更好地描述我的表位于何处以及我的更新需要如何发生,也许有人可以指出这是错误的,或者它是否会以这种方式工作。

任何建议都将不胜感激

1 个答案:

答案 0 :(得分:1)

看起来您的子查询(别名为SBD)缺少job_no列。因此,你无法加入它。