更新查询的 MS Access SQL 错误
Posted
技术标签:
【中文标题】更新查询的 MS Access SQL 错误【英文标题】:MS Access SQL error with Update Query 【发布时间】:2015-04-24 21:04:44 【问题描述】:致力于在 SQL Server 数据库和 MS Access 之间链接数据。现在有人正在从 SQL 数据库报告中手动计算数据并将其输入 Access 以在 Access 中运行其他报告。
我创建了一个直通查询,以将相关信息从 SQL 数据库中提取到访问表中(一切正常)
现在我需要使用从 SQL 传递中检索到的数据来更新现有的访问表。由于各种原因,我尝试了许多不同的查询。这是最新查询的示例,它将为我提供所需的信息。如果我在 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
在访问上面生成以下错误“查询表达式中的语法错误(缺少运算符)。
更新尝试使用 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
希望能更好地描述我的表的位置以及我的更新需要如何进行,也许有人可以指出这是怎么回事,或者它是否会以这种方式工作。
任何建议将不胜感激
【问题讨论】:
考虑使用 Access 直通查询在服务器上执行UPDATE
语句。
我喜欢这个想法,但似乎遇到了问题。当我修改此查询以从 SQL 直通查询更新访问表时,它无法识别访问表。使用查询和错误更新问题。
看来我误解了你告诉我们的内容。我的意思是执行UPDATE JT ...
作为传递查询,因为它在那里工作。我不明白 Access 表在哪里涉及。对不起。
【参考方案1】:
您的子查询(别名为 SBD)似乎缺少 job_no 列。因此,您将无法加入。
【讨论】:
这只是我的一个错字,抱歉。我已经更新了帖子中的 SQL以上是关于更新查询的 MS Access SQL 错误的主要内容,如果未能解决你的问题,请参考以下文章
MS Access SQL:使用另一个表中的Sum更新连接查询