VBA访问 - 使用In更新语句

时间:2018-04-06 12:59:02

标签: access-vba sql-update

我无法确定以下是否可行。我想在另一个数据库的一个数据库中运行更新语句。我知道我可以保存查询并从master数据库运行它,但我认为下面的内容是可能的

UPDATE tblOne 
 INNER JOIN tblTwo 
    ON tblOne.[TID] = tblTwo.TID 
   SET tblTwo.PC = [tblOne].[PC] 
  from tblOne in 'C:\DB.mdb' ;

非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

根据MSDN DocumentationIN子句仅在与SELECT语句(即选择查询),INSERT INTO语句(即附加查询)一起使用时才兼容或SELECT INTO语句(即Make Table查询) - 它不能用作UPDATE语句的一部分。

我建议您将tblOne导入到您打算执行UPDATE查询的数据库中作为链接表 - 这也将导致使用{{1}的性能提高}。clause。

要链接表格,请从外部数据功能区标签的导入面板中选择访问数据库,然后选择从向导中链接选项:

enter image description here

表格关联后,您的IN语句将变为:

UPDATE

答案 1 :(得分:0)

我认为您只需要反转您所写的内容,因为您要更新的表需要成为主表。

尝试:

UPDATE tblTwo  
INNER JOIN tblOne ON tblOne.[TID] = tblTwo.TID  
SET tblTwo.PC = [tblOne].[PC] ;

请注意,如果没有where子句,您将更新所有行。