致力于在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
希望更好地描述我的表位于何处以及我的更新需要如何发生,也许有人可以指出这是错误的,或者它是否会以这种方式工作。
任何建议都将不胜感激
答案 0 :(得分:1)
看起来您的子查询(别名为SBD)缺少job_no列。因此,你无法加入它。