我需要通过宏进行以下更新,
If tbname = "PARTY" Then
Dim ssql As String
ssql = "Update PARTY Set PARTY_ID= (SELECT (max(PARTY_ID)+1) FROM PARTY) WHERE PARTY_ID ='DUMMY'
DB.Execute ssql, 64
End If
我在运行上述声明时收到此错误。
错误代码:1093。您无法指定目标表' PARTY'用于更新 FROM条款0.000秒
有没有其他方法可以将max(party_id)+1
更新为party_id为" DUMMY"
答案 0 :(得分:0)
您遇到的错误在您的SQL中。你不应该在这里使用subselect。你所拥有的from-clause是完全公牛,因为Update PARTY
暗示From PARTY
另外,你似乎在计算一些奇怪的东西,因为你得到了一个"无效使用群组功能" -error。短搜索显示this stackoverflow question,表示你应该使用HAVING而不是WHERE
因此修复很简单:
ssql = "Update PARTY set PARTY_IT=(max(PARTY_ID) + 1) HAVING PARTY_ID='DUMMY'"