来自另一个表的SQL更新表

时间:2012-09-06 13:18:01

标签: sql

在Access中使用SQL,尝试使用用户名从另一个表“更新”表。 下面的第3行(SQLnm2 ...)说错误-2465找不到字段'|'。 我试过很多方法改变表达但没有成功。 非常感谢任何帮助。

Dim SQLnm As String  
Dim SQLnm2 As String  
SQLnm2 = SQLnm2 & "', '" & [Employees]![NBK] & "');"  
SQLnm = " Update tbl_DateTracking SET NBK = "  
SQLnm = SQLnm & "'" & SQLnm2 & "' WHERE "  
SQLnm = SQLnm & "CaseId = '" & CaseId & "' AND OCC_Scenario = '" & OCC_Scenario & "';"  
DoCmd.RunSQL SQLnm 

2 个答案:

答案 0 :(得分:0)

你有一个关闭括号,在第三行没有打开它。

  

SQLnm2 = SQLnm2& “','”& [员工]![姓名]& “');”

您也没有说明要更新的列。您似乎想要更新2列,第一列是NBK,其值为空。第二个是棘手的,因为您要么更新名为Name的列,要么将另一列更新为employee.name的值。

您的代码连接到

  

更新tbl_DateTracking   SET NBK ='','员工姓名'WHERE

您的代码需要说明哪个列是员工姓名。

EG

  

更新tbl_DateTracking   SET NBK ='',EnterColumnNameHere ='Employee.Name'WHERE

或者你的意思是

  

更新tbl_DateTracking   SET NBK ='Employee.Name'WHERE

在我知道您要填充多少列(以及具有什么价值)之前,我无法提供SQL代码。

作为背景指南:

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
WHERE LastName='Tjessem' AND FirstName='Jakob'

答案 1 :(得分:0)

Dim SQLnm2 As String

应该将SQLnm2初始化为空字符串,所以

SQLnm2 = SQLnm2 & "', '" & [Employees]![name] & "');"

会产生一个字符串', '...');

SQLnm = " Update tbl_DateTracking SET NBK = "  
SQLnm = SQLnm & "'" & SQLnm2 & "' WHERE "

然后将该字符串插入SQLnm,生成查询

Update tbl_DateTracking SET NBK = '', '...');' WHERE ...

应该是

Update tbl_DateTracking SET NBK = '...' WHERE ...