需要通过宏更新数据库表

时间:2015-02-05 10:10:07

标签: mysql vba

我需要通过宏进行以下更新,

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"

的行

1 个答案:

答案 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'"