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'
在 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'