Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 使用内部联接访问vba代码更新查询_Ms Access_Vba_Inner Join - Fatal编程技术网

Ms access 使用内部联接访问vba代码更新查询

Ms access 使用内部联接访问vba代码更新查询,ms-access,vba,inner-join,Ms Access,Vba,Inner Join,我试图通过内部联接查询访问vba从另一个表更新一个表。要更新的字段名称将以表单形式呈现 我写了这个查询,但它给了我错误 Dim dbs As Database Dim qdf As QueryDef Set dbs = OpenDatabase("Dba_Savings.mdb") dbs.Execute " UPDATE TblClient INNER JOIN TblImport ON TblClient.Account_Id = TblImport.Account_Id" _ &

我试图通过内部联接查询访问vba从另一个表更新一个表。要更新的字段名称将以表单形式呈现

我写了这个查询,但它给了我错误

Dim dbs As Database
Dim qdf As QueryDef

Set dbs = OpenDatabase("Dba_Savings.mdb")
dbs.Execute " UPDATE TblClient INNER JOIN TblImport ON TblClient.Account_Id = TblImport.Account_Id" _
& " SET TblClient." & Me.txtNewFieldName & " = TblImport." & Me.txtNewFieldName2 & ";"

dbs.Close
谁能帮帮我吗



SQL工作正常,并更新表,没有错误。

这两个命令之间缺少一个空格:

ON TblClient.Account_Id = TblImport.Account_Id" _ 
& "SET TblClient.
在VBA中构建SQL时,始终将SQL分配给字符串变量,然后
Debug.Print
此变量。在这种情况下,错误是显而易见的

此外,此部分是不必要的,因为它已在内部联接中:

WHERE TblClient.Account_Id = TblImport.Account_Id
编辑

而不是

dbs.Execute“更新TblClient.Account\u Id=TblImport.Account\u Id上的TblClient内部连接TblImport”\u
&“设置TblClient。”&Me.txtNewFieldName&“=TblImport。”&Me.txtNewFieldName2&“;”
你可以:

Dim S作为字符串
S=“更新TblClient.Account\u Id上的TblClient内部联接TblImport=TblImport.Account\u Id”\u
&“设置TblClient。”&Me.txtNewFieldName&“=TblImport。”&Me.txtNewFieldName2&“;”
调试。打印S
执行
Ctrl+G打开立即窗口,这将显示调试的输出。请将此添加到您的问题中


然后,如果仍然出现错误,您还可以创建一个新查询,切换到SQL视图,复制并粘贴输出,然后尝试运行查询。您可能会收到更好的错误消息。或者至少突出显示问题部分。

您遇到了什么错误?查询表达式中的运行时错误“3075”Sytaxe错误(缺少运算符)。谢谢,但我仍然有相同的错误,可能对表单的引用不正确:“&Me.txtNewFieldName&”请编辑您的问题,并添加
调试的输出。打印
@JamesLaguerre@JamesLaguerre求你了<代码>调试。打印
。使用它。我保证这会有帮助。@JamesLaguerre:请参见编辑。VBA不工作,它会给出错误,但SQL在Debug.Print之后可以正常工作。
WHERE TblClient.Account_Id = TblImport.Account_Id