是否可以使用Update2中的Table2.Field2值更新Database1中的Table1.Field1,并在Access中使用更新查询和内部联接?两个数据库都在Access中。
我读过有关IN子句(https://msdn.microsoft.com/en-us/library/bb177907.aspx)但无法在更新查询中正确实现它。
此代码不起作用,但它提供了我想要做的事情的想法:
UPDATE Table1 INNER JOIN Table2 ON Table1.ID=Table2.ID IN "C:\Folder\Database.accdb"
SET Table1.Field1 = Table2.Field2
它不起作用,因为表2位于“C:\ Folder \ Database.accdb”中,但Table1位于我运行更新查询的数据库中。
谢谢!
答案 0 :(得分:2)
您可以使用子查询在更新中使用IN
子句。这样,它明确哪个表在哪个数据库中。
UPDATE Table1 INNER JOIN (SELECT * FROM Table2 IN "C:\Folder\Database.accdb") t2 ON Table1.ID=t2.ID
SET Table1.Field1 = t2.Field2
答案 1 :(得分:0)
尝试以下代码。
步骤: 1.创建linkedTable 2.运行sql来更新你的表 3.从第1点删除linkedTable
Sub UpdateTAble()
Dim sql As String
Dim tbDef As DAO.TableDef
'Create new table definition
Set tbDef = CurrentDb.CreateTableDef("Table2")
'SourceTableName is a table name from soure db.
tbDef.SourceTableName = "Table2"
'Connect is full path to your source db.
tbDef.Connect = "MS Access;DATABASE="C:\Folder\Database.accdb;"
CurrentDb.TableDefs.Append tbDef
CurrentDb.TableDefs.Refresh
'Table2 is linked table but save in main DB - can be used without IN
sql = "Update table1 INNER JOIN Table2 ON Table2.ID = Table1.ID set table1.Field1 = table2.Field1"
CurrentDb.Execute sql
CurrentDb.TableDefs.Delete "Table2"
End Sub