UPDATE 查询中的错误 - VB6 DAO 访问

Errors in UPDATE query - VB6 DAO Access

在 Access .MDB 数据库上使用 VB6 和 DAO,使用 INNER JOIN 进行简单的 UPDATE 查询给我带来了问题。

我认为这很简单,但无论我做什么更改都会出错。

我的查询是:

UPDATE work
INNER JOIN emp ON work.ref = emp.ref 
SET work.code1 = emp.code1

这会产生 运行 时间错误 3075 Syntax error in query expression 'work.ref = emp.ref'

我遇到了类似的错误:

UPDATE work w
INNER JOIN emp ON w.ref = emp.ref 
SET w.code1 = emp.code1

UPDATE [work] w
INNER JOIN emp ON w.ref = emp.ref 
SET w.code1 = emp.code1

如果我使用别名 e 作为 table emp.

我不能使用 FROM 子句,Access 不支持它(感谢@MarkKram)

我必须在 VB6 中使用 DAO 3.51(旧版本!),它不容易更改。

我试过在 work 的第一个引用周围加上方括号,如在 UPDATE [work] 中(因为我在一个简单的 SELECT * FROM [work] 中需要它)以及有和没有方括号的各种组合table 名称和列名称周围的括号。但是还是失败了。

请问您有什么建议吗?

Dim ws As DAO.Workspace
Dim DB As DAO.Database
Dim szSQL As String

Set ws = gWS
Set DB = gWS.OpenDatabase(WorkFile)

szSQL = "UPDATE work INNER JOIN emp ON work.ref = emp.ref SET work.code1 = emp.code1 WHERE work.trancode = 'P'"
DB.Execute szSQL

Set DB = Nothing
Set ws = Nothing

试试这个:

UPDATE work, emp 
SET work.code1 = emp.code1 
WHERE work.ref = emp.ref AND work.transcode ='P'