【发布时间】:2020-07-13 20:17:11
【问题描述】:
我正在尝试使用第二个表中两个字段的值更新一个表中的两个字段,但没有链接两个表的主键。
第二个表没有主键,因为它是通过 Transfersheet 方法创建的,只是为了从 Excel 将数据导入其中。
这是我目前的代码(目前这段代码没有做任何事情):
SQL = "MERGE TableA AS Target" & _
" USING TableB AS Source" & _
" ON " & _
"(Target.Field1=Source.Field1,Target.Field2=Source.Field2)" & _
" WHEN NOT MATCHED BY Target" & _
" THEN UPDATE (Field1,Field2)" & _
" VALUES (Source.Field1,Source.Field2)"
【问题讨论】:
-
请详细说明您所说的“问题”是什么意思。
-
问题是更新没有做任何事情。我已经测试过:在 Excel 工作表中,Field1 的一个值为“1111”,Field2 的值为“Microsoft”,即一行。在我的数据库中,仅输入了 field2(“Microsoft”),Field1 为空白。它想在 Field1 中插入值“1111”。就是这样。
-
@KevinHogg,我在第二张桌子上没有身份证,我已经提到过。我正在从 Excel 电子表格进行更新 - 此工作表的数据通过 TransferSheet 方法导入到新表中,并且 Access 不会创建 ID 号字段。请参阅我为 TrasferSheet 方法代码编辑的问题,它在 SQL 之前执行。
-
首先删除 TableA.Field1 = tableB.Field1 ...您正在通过这些进行连接,它们已经与正在连接的相同,第二您确定表中的列是相同的类型吗?那是什么? nvarchar?诠释?请第三次输入一些输入,以便我们实际上可以为您指明正确的方向
标签: sql ms-access vba ms-access-2010