UPDATE查询中的错误-VB6 DAO访问
问题描述:
带INNER JOIN的简单UPDATE查询会导致我在Access .MDB数据库上使用VB6和DAO时出现问题。UPDATE查询中的错误-VB6 DAO访问
我认为这很简单,但无论我做出什么样的改变都会产生错误。
我的查询是:
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对于EMP表。
我不能使用FROM
条款,不支持Access(感谢尽管@MarkKram)
我必须使用DAO 3.51(老了!)在VB6,不能轻易改变。
我试图围绕第一参考work
如UPDATE [work]
方括号(如我需要这个以简单SELECT * FROM [work]
)以及具有和不具有周围的表名和列名方括号的各种组合。但它仍然失败。
你有什么建议吗?
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'
试试这个:。 UPDATE w SET w.code1 = e.code1 work w INNER JOIN emp e ON w.ref = e.ref w.trancode ='P' –
@MarkKram [Access syntax](https://*.com/a/ 379242/11683)是不同的。 – GSerg
看看这个链接然后:https://*.com/questions/12882212/sql-updating-from-an-inner-join我真的不使用Access非常多 –