假设您的表不包含使用域聚合函数对记录进行排序的主键字段,一种可能的方法是在VBA中使用静态变量。
Function Occurrence(Optional strVal As String) As Long
Static lngTmp As Long
Static strTmp As String
If strTmp = strVal Then
lngTmp = lngTmp + 1
Else
lngTmp = 1
strTmp = strVal
End If
Occurrence = lngTmp
End Function
YourTable
更改为表的名称:
update (select t.layout_desc from YourTable as t order by t.layout_desc) q
set q.layout_desc = q.layout_desc & occurrence(q.layout_desc)
如果您的表要包含Long Integer数据类型的主键(例如id
),则可以通过以下方式使用域聚合函数DCount
:
update YourTable t
set t.layout_desc = t.layout_desc &
dcount("*","YourTable","layout_desc = '" & t.layout_desc & "' and id <= " & t.id)